zoukankan      html  css  js  c++  java
  • 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..."
        }
  • 相关阅读:
    好理解的堆排序
    SpringCloud 整合 Python 服务
    SpringCloud入门总结
    Spring异常集中处理和日志集中打印
    Java枚举类型的理解及在后台响应中的使用
    Elasticsearch合并高亮字段
    Elasticsearch分析器结构组成
    Elasticsearch实现英文区分大小写搜索
    Nginx三大功能
    Elasticsearch Java Client 版本区别及起步(5.X 和6.X)
  • 原文地址:https://www.cnblogs.com/digjim/p/2558458.html
Copyright © 2011-2022 走看看