在脚本中,当command-let或其他可执行语句出错时,是否存在try/catch类型的机制来恢复这些错误?我还没有在文档中遇到过这样的问题。
发布于 2008-10-14 19:27:03
在要为其处理异常的代码之前使用Trap [exception-type] {}
块。
发布于 2008-11-24 21:52:12
我已经在我的TechNet杂志专栏(technetmagazine.com,如果你感兴趣的话)中写到了这一点。
首先,PowerShell v2将有一个标准的Try...Catch,这很棒。
现有的外壳程序(v1)支持陷阱{}构造。这些必须在异常发生之前定义。此外,大多数cmdlet需要-EA "STOP“参数才能生成可捕获的异常。陷阱可以在任何作用域中定义,并将“冒泡”,直到陷阱或直到它们达到全局(外壳)作用域。
在陷阱结束时,execute Continue返回与陷阱相同作用域中的下一行代码,或执行Break离开当前作用域并向上抛出异常。
发布于 2008-11-11 20:44:11
这里有一个人(Adam Weigert)使用powershell实现了try/catch/finally。我用它代替内置的trap staement。看起来更自然。
http://weblogs.asp.net/adweigert/archive/2007/10/10/powershell-try-catch-finally-comes-to-life.aspx
https://stackoverflow.com/questions/202470
复制相似问题