PowerShell: Try...Catch...Finally 实现方法
2012-06-22 08:47
316 查看
PowerShell 本身有很多很好的错误控制,但是习惯于.net编程的人员,更喜欢用Try Catch Finally方法,尤其当有一段代码必须被执行到的时候。现在好了,adweigert 想出了一个好方法来实现。这个函数已经在多种情况下测试过,希望能对你有帮助。
1 function Try
2 {
3 param
4 (
5 [ScriptBlock]$Command = $(throw "The parameter -Command is required."),
6 [ScriptBlock]$Catch = { throw $_ },
7 [ScriptBlock]$Finally = {}
8 )
9
& {
$local:ErrorActionPreference = "SilentlyContinue"
trap
{
trap
{
& {
trap { throw $_ }
&$Finally
}
throw $_
}
$_ | & { &$Catch }
}
&$Command
}
& {
trap { throw $_ }
&$Finally
}
}
使用示例:
# Example usage
Try {
echo " ::Do some work..."
echo " ::Try divide by zero: $(0/0)"
} -Catch {
echo " ::Cannot handle the error (will rethrow): $_"
#throw $_
} -Finally {
echo " ::Cleanup resources..."
}
1 function Try
2 {
3 param
4 (
5 [ScriptBlock]$Command = $(throw "The parameter -Command is required."),
6 [ScriptBlock]$Catch = { throw $_ },
7 [ScriptBlock]$Finally = {}
8 )
9
& {
$local:ErrorActionPreference = "SilentlyContinue"
trap
{
trap
{
& {
trap { throw $_ }
&$Finally
}
throw $_
}
$_ | & { &$Catch }
}
&$Command
}
& {
trap { throw $_ }
&$Finally
}
}
使用示例:
# Example usage
Try {
echo " ::Do some work..."
echo " ::Try divide by zero: $(0/0)"
} -Catch {
echo " ::Cannot handle the error (will rethrow): $_"
#throw $_
} -Finally {
echo " ::Cleanup resources..."
}
相关文章推荐
- PowerShell: Try...Catch...Finally 实现方法
- 4.第三单元任务三实训:编写一个类ExceptionTest,在main方法中使用try-catch-finally语句结构实现:在try语句块中,编写两个数相除操作,相除的两个操作数要求程序运行时用
- 经典面试题,try-catch-finally在虚拟机中的实现
- golang实现try-catch-finally机制
- 《OOC》笔记(2)——C语言实现trycatchfinally
- JAVA学习笔记25——异常机制1:Exception简介+异常处理的try_catch_finally方法
- try{}catch(){}//根据异常信息使用不同的方法要怎么实现
- try catch finally 正确使用方法
- Objective-C中try、catch、finally的使用方法
- Powershell: try/catch/finally cannot catch non-terminating error
- Powershell错误处理,try catch finally
- C#扩展方法应用之 try catch finally 封装
- 异常管理 - 采用模板方法优化try-catch-finally
- 在进行C#编程时候,有的时候我们需要判断一个字符串是否是数字字符串,我们可以通过以下两种方法来实现。 【方法一】:使用 try{} catch{} 语句。 我们可以在try语句块中试图
- 【慕课笔记】第一章 异常与异常处理 第2节 使用try...catch...finally实现异常处理
- try-catch-finally语句中用什么方法退出或者不执行finally就直接退出并且return和finally的执型顺序是怎样的
- iOS捕获异常,常用的异常处理方法 try-catch-finally
- try-catch-finally语句中用什么方法退出或者不执行finally就直接退出并且return和finally的执型顺序是怎样的
- try catch finally问题
- 一个关于try、catch、finally问题