Powershell 错误处理

即插即用

以下面的例子为例。

Function Test-Function {
    try {
        [int]$var.ToString()
    }catch{
        Write-Error "Error inside Function"     
    }
}


try {
    Test-Function
}catch{
    Write-Error "Error inside try/catch of script"
}

Test-Function本身正在产生一个错误(在这种情况下是故意的,以测试这种行为),因此命中它自己的捕获。但是,脚本中的函数调用本身也包含在 Try Catch 语句中,但脚本只显示函数的捕获。这是设计使然吗?

马特

答案是如何try-catch工作和做什么Write-ErrorDoc.Microsoft我们知道......

Write-Error cmdlet 声明了一个非终止错误

看看About_Try_Catch_Finally我们看到它......

描述如何使用 Try、Catch 和 finally 块来处理终止错误。

在两个引号中都强调我的

Try catch 不会从其捕获输出Write-Error,这是设计使然。如果要传递终止错误,请使用throw

Function Test-Function {
    try {
        [int]$var1.ToString()
    }catch{
        throw "Error inside Function"     
    }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章