HF1-Powershell hibakezelés

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

Sziasztok!

Scriptem jelenleg egy nagy try-catch blokkban van, és ha eldobok egy hibát valahol a scriptben, akkor azt write-errorral kiíratom a catch ágban. Viszont rájöttem,hogy ez így igazából csak egy üzenetet ad a külvilágnak. Elég ez a fajta hibakezelés, vagy catchben dobjam tovább az elkapott hibát?

Köszönöm a segítséget.

1 Answer

+1 vote
answered Mar 29, 2015 by sandormatyi (80 points)  
selected Mar 29, 2015 by Gio
 
Best answer

Ha továbbdobnád az elkapott hibát, akkor mi értelme van elkapni? :)

Persze sok eset van, amikor különböző okok miatt ezt a megoldást kell használni, de szerintem itt sokkal szebb, ha nem írsz pl. az input validálásához try-catch blokkot, hanem csak throw-val dobsz egy hibát, így aki majd esetleg meghívja a cmdlet-et, le tudja kezelni, ha akarja (pl. ha a tesztfájlodat is PS-ben írod, akkor ott nyilván el kell kapni a dobott hibákat és megnézni, hogy ez-e az elvárt működés).

commented Mar 29, 2015 by sandormatyi (80 points)  
edited Mar 29, 2015 by sandormatyi
Rádaásul mikor throw-val dobsz egy hibát és nem kapja el senki, akkor a hibaüzenetet ki is írja a host (command prompt), úgyhogy azzal sem kell foglalkoznod.

Így gondolom a dolgot:

if (! (Test-Path $Data)) {
    throw "$Data does not exist!"
}
commented Mar 29, 2015 by Gio (73 points)  
Köszönöm!

A tesztelést azt feltétlenül muszáj automatizáltan futtatni? Tehát nem elég,ha van egy testscript fileom, ami tartalmazza a teszt eseteket, és azokat kézzel lefuttatom,majd a jegyzőkönyvben mindegyiket megvizsgálom,hogy a megfelelő hibát dobja e/megfelelően működik-e ?
commented Mar 29, 2015 by sandormatyi (80 points)  
Az is elég, de szerintem gyorsabb megírni egy batch file-t, ami végigfuttatja a teszteseteket (plusz kiírja mondjuk mindegyikre a kiadott parancsot és az elvárt kimenetet) és a javító is örülni fog neki.
commented Mar 29, 2015 by Gio (73 points)  
Rendben, köszönöm szépen a segítséget!
...