PowerShell: Try...Catch...Finally 实现方法

 更新时间:2013年11月01日 00:43:50   作者:  
PowerShell 本身有很多很好的错误控制,但是习惯于.net编程的人员,更喜欢用Try Catch Finally方法,尤其当有一段代码必须被执行到的时候。现在好了,adweigert 想出了一个好方法来实现。这个函数已经在多种情况下测试过,希望能对你有帮助

复制代码 代码如下:

function Try
    {
        param
        (
            [ScriptBlock]$Command = $(throw "The parameter -Command is required."),
            [ScriptBlock]$Catch   = { throw $_ },
            [ScriptBlock]$Finally = {}
        )

        & {
            $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中的文件夹共享及磁盘映射的操作步骤

    Powershell中的文件夹共享及磁盘映射的操作步骤

    本文介绍了如何在Windows下使用Powershell和cmd实现文件夹共享,内容包括查看共享列表、创建共享文件夹、驱动器映射和共享访问、删除共享等操作步骤,感兴趣的朋友跟随小编一起看看吧
    2025-02-02
  • Windows Powershell 变量的幕后管理

    Windows Powershell 变量的幕后管理

    如果在Powershell中输出一个变量,只会输出这个变量的值。不能够显示它的其它信息,如果想查看一个变量的其它保留信息,就需要变量的基类PSVariable对象,这个可以通过Get-Variable命令得到
    2014-09-09
  • PowerShell中使用正则表达式跨行匹配字符串的方法

    PowerShell中使用正则表达式跨行匹配字符串的方法

    这篇文章主要介绍了PowerShell中使用正则表达式跨行匹配字符串的方法,重点在于正则表达式的写法,需要的朋友可以参考下
    2014-08-08
  • Powershell打印文本文档例子

    Powershell打印文本文档例子

    这篇文章主要介绍了Powershell打印文本文档例子,本文相对简单,默认给出的是打印系统日志文件,使用时要替换成自己想打印的文件,需要的朋友可以参考下
    2014-11-11
  • PowerShell DSC组件 xExchange 发布

    PowerShell DSC组件 xExchange 发布

    这篇文章主要介绍了PowerShell DSC组件 xExchange 发布,xExchange实现可以在PowerShell中使用DSC来部署和配置Exchange,需要的朋友可以参考下
    2015-04-04
  • PowerShell实现时间管理小秘书

    PowerShell实现时间管理小秘书

    这篇文章主要介绍了PowerShell实现时间管理小秘书,本文是一个PowerShell的综合编程实例,实现了一个用来管理时间的功能,需要的朋友可以参考下
    2015-04-04
  • Powershell小技巧之屏蔽输出结果

    Powershell小技巧之屏蔽输出结果

    这篇文章主要介绍了Powershell的一个小技巧--屏蔽输出结果,需要的朋友可以参考下
    2014-09-09
  • 探索PowerShell(十一)函数介绍

    探索PowerShell(十一)函数介绍

    通常,代码块就是指函数,调用函数,就是执行不同的代码块,以便实现各种功能
    2012-12-12
  • powershell操作word详解

    powershell操作word详解

    这篇文章主要介绍了powershell操作word示例,需要的朋友可以参考下
    2014-05-05
  • PowerShell 脚本中的密码保存的方法

    PowerShell 脚本中的密码保存的方法

    这篇文章主要介绍了PowerShell 脚本中的密码保存的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-12-12

最新评论