当前位置 博文首页 > PowerShell: Try...Catch...Finally 实现方法

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

    作者:admin 时间:2021-02-07 21:02

    复制代码 代码如下:

    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..."
        }

    js
    下一篇:没有了