Fehler ausgeben mit Write-Error und Throw
Wenn Sie in Powershell eine Fehlermeldung ausgeben wollen, haben Sie zwei Möglichkeiten - Write-Error und Throw.
Write-Error ist im Prinzip gar kein richtiger Fehler. Das Cmdlet schreibt tatsächlich einfach nur eine Ausgabe in den Fehler-Datenstrom, der dann von Powershell als roter Text in der Konsole ausgeben wird. Die Ausgabe von Write-Error kann beim Aufrufen eines Cmdlets mit dem Standard-Parameter -ErrorAction und dem Argument SilentlyContinue unterdrückt werden. Alle Ausgaben von Write-Error werden auch in der Standardvariablen $Error gespeichert.
Write-Error "Hier ist was schief gelaufen"
Man spricht bei Write-Error auch von einem Nicht-terminierenden Fehler, weil er keine Auswirkungen auf die Code-Ausführung hat.
Um einen "echten" Fehler auszulösen, der die Code-Ausführung sofort beendet, können Sie Throw verwenden. Hinter dem Throw-Statement geben Sie in den String an, der als Fehlermeldung ausgegeben werden soll.
Throw 'Das ist jetzt aber wirklich mal ein schlimmer Fehler!!!'
> Das ist jetzt aber wirklich mal ein schlimmer Fehler!!!
> In Zeile:1 Zeichen:1
> + Throw 'Das ist jetzt aber wirklich mal ein schlimmer Fehler!!!'
Throw löst Terminierende Fehler aus. Wenn Sie terminierende Fehler abfangen und behandeln wollen, können Sie das mit dem Try-Catch-Konstrukt tun.