Always Returns Success – dlaczego? Jenkins i PowerShell

Od jakiegoś czasu mam przyjemność obcować z narzędziem typu Continuous Integration i Continuous Delivery, a konkretnie mowa o Jenkins. Chciałbym podzielić się swoimi spostrzeżeniami a w obszarze tego narzędzia w zestawie z pluginem PowerShell, którego główie używam. Dzisiaj będzie o…

czytaj dalej

Obsługa błędów w PowerShell – Try-Catch-Finally i jego niuanse

Poniżej przedstawię wam kilka faktów związanych z obsługą błędów w Windows PowerShell.

Zacznę trochę od zaszłości. W Windows PowerShell 1.0 błędy można było obsługiwać (i nadal można) za pomocą instrukcji trap. Polecenie mało znane i rzadko spotykane.

Dokumentacja: https://msdn.microsoft.com/en-us/powershell/reference/5.1/microsoft.powershell.core/about/about_trap
W Microsoft PowerShell 2.0 wprowadzono znaną już chociażby z języka C# konstrukcję Try-Catch-Finally. Blok try to sekcja kodu, która obsługuję błędy. To tutaj wykonywany jest nasz kod i jeśli w tym czasie wystąpi błąd powodujący zamknięcie programu, następuję przechwycenie tego błędu przez najbliższy blok Catch. Te dwa bloki są ze sobą powiązane i zawszę muszą występować razem. Ostatni blok to Finally, w którym instrukcje zostaną wykonane niezależnie od rezultatów poprzednich bloków.

czytaj dalej