这是我想的最佳实践问题。使用函数进行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