HF1-Powershell automatizált hibakezelés

0 votes
asked Mar 29, 2015 in IRF tantárgy by Gio (73 points)  

Sziasztok!

Kérdésem az lenne, hogy ha a paraméter résznél a mandatory-t true-ra állítom, akkor a script futtatása során nem hiba keletkezik,hanem bekéri a hiányzó paramétert. Ez mennyiben hátráltatja a későbbi feladat értékelésnél az automatizált ellenőrzést? Valamint ha szeretnék egy non-terminating errort terminatingre állítani, akkor megtehetem,hogy odaírom a $ErrorActionPreference = "Stop" kulcsszót? Köszönöm a segítséget.

1 Answer

0 votes
answered Mar 29, 2015 by hajdua (688 points)  

Szia!

Hiányzó paramétereknél teljesen jó, ha megkérdezi.

Melyik hibát állítod non-terminating-re? Alapvetően jó megoldás az is amit írtál, de lehet egyszerűen if-then-else ellenőrzésekkel is kezelhető az adott hiba.

commented Mar 29, 2015 by Gio (73 points)  
edited Mar 29, 2015 by Gio
Fájl vizsgálatnál,hogyha a test-path elbukik, például akkor:
try{
        $ErrorActionPreference = "Stop"
           $disablingNewItemOutput = New-Item $OutFile -type file -Force
}
catch{
 Write-Error(...)
}
Amennyiben nem állítom be az erroractiont, akkor nem terminál, és tovább fut egészen a kód végéig, ahol újra dob egy üzenetet. Így lefut az összes címtárlekérdezés és logika a háttérben, aminek nem nagyon kéne, ezért állítottam be. Viszont ha ezt beállítom,akkor leáll és azonnal el is kapom a catch-ben és kiírom a hibát.

Ezen kívül még hogyha sikeres volt a test-path, akkor a jogosultság kezelésnél:

 try {
            $ErrorActionPreference = "Stop"
            #try to open the file for write, and closing it immediately
            [io.file]::OpenWrite($OutFile).close()
}
Itt szintén, ha nem állítom be az erroractiont, akkor lefut végig.
...