所以到目前为止,我一直在使用Try/Catch
在Powershell中进行错误处理,每当发生错误时,它都会被写入日志文件。
现在我该如何处理意外错误?我应该将整个脚本代码放在Try/Catch
块中,还是有更好的方法来执行此操作?
感谢您的帮助。
答案 0 :(得分:2)
是的,有。您可以在脚本顶部定义Trap并记录上一个错误:
trap
{
Write-host $Error[0]
}
答案 1 :(得分:0)
你是对的。当您使用默认的try / catch(/ finally)语句时,所有异常都将被捕获在catch块中。
try {
Do-Someting
} catch {
Write-Host "Caught the following error: $($_.Exception.Message)"
} finally {
Write-Host "Finally, we made it!"
}
当您专门为catch捕获添加异常时,您可以为该异常创建特定的操作:
try{
Do-Something
} catch [System.Management.Automation.ItemNotFoundException]{
# catching specific exceptions allows you to have
# custom actions for different types of errors
Write-Host "Caught an ItemNotFoundException: $($_.Exception.Message)" -ForegroundColor Red
} catch {
Write-Host "General exception: $($_.Exception.Message)"
}