這是我想的最佳實踐問題。使用函數進行PowerShell錯誤處理
在設計將在腳本中使用的函數時,處理函數中可能發生的錯誤的最佳方法是什麼?
例如,假設我們有做X和Y基本功能:
Function Test-Function
{
Try
{
<# Something in here that would generate an error #>
}
Catch
{
Throw
}
Return $someReturnResultIWantInMyScript
}
我的腳本調用此函數:
Try
{
$ValueIWantFromFunction = Test-Function
}
Catch
{
<# Do something here #>
}
如果Test-Function
命中終止錯誤,它會拋出給來電者。圍繞腳本中的函數調用的Try/Catch
將收到此錯誤並觸發它自己的捕獲。然後我可以決定做什麼。
如果我沒有在函數中拋出錯誤,腳本不會看到終止錯誤,然後我的$ValueIWantFromFunction
可能包含$Null
或其他沒有用的東西。
這是一個錯誤處理與腳本內的函數和函數調用的好方法嗎?有沒有更好的辦法?
我會說這取決於使用情況。大多數情況下,這些選項可以讓您選擇。如果可以用其他條件邏輯避免,最好的做法是避免觸發這些錯誤。 – Matt
不管你的try/catch如何,終止錯誤都會發送給調用者,除非你的try/catch阻止了它。 – TheIncorrigible1
那麼如果函數也返回一個值(假設它成功了),我該如何處理錯誤呢? – PnP