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


    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        
    10         & {
    11             $local:ErrorActionPreference = "SilentlyContinue"
    12            
    13             trap
    14             {
    15                 trap
    16                 {
    17                     & {
    18                         trap { throw $_ }
    19                         &$Finally
    20                     }
    21                    
    22                     throw $_
    23                 }
    24                
    25                 $_ | & { &$Catch }
    26             }
    27            
    28             &$Command
    29         }
    30 
    31         & {
    32             trap { throw $_ }
    33             &$Finally
    34         }
    35     }

    使用示例:

        # 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..."
        }
  • 相关阅读:
    取消GridView/ListView item被点击时的效果 记录学习
    EditText 几种显示方式,固定行数,自适应行数
    Android 判断当前屏幕是横屏还是竖屏
    Android 用代码设置Shape,corners,Gradient
    Android 横屏不让输入法全屏显示
    js-JavaScript高级程序设计学习笔记7
    js-FCC算法-Pairwise
    js-JavaScript高级程序设计学习笔记6
    js-JavaScript高级程序设计学习笔记5
    js-自制轮播插件!
  • 原文地址:https://www.cnblogs.com/digjim/p/2558458.html
Copyright © 2020-2023  润新知