PowerShell类方法重载解决方案-什么类型将接受任何错误或异常对象

时间:2018-08-02 06:51:28

标签: powershell exception overloading

我正在'logger'类中使用方法重载,以便通过将消息和错误作为参数传递给'log'方法来记录消息和错误,例如

[void]Log( [string]$logMessage ) {
    # write $logMessage to log file
}

[void]Log( [System.Management.Automation.ErrorRecord]$errorObject ) {
    $this.Log( $errorObject.ToString() )
}

[void]Log( $logMessage, [System.Management.Automation.ErrorRecord]$errorObject ) {
    $this.Log( "{0}`n{1}" -f $logMessage, $errorObject.ToString() )
}

在主代码中,我在TrapCatch块中调用Log方法,以在日志中记录错误的详细信息,然后将$Error[0]作为errorObject参数传入,例如< / p>

Catch {
    $gLogger.Log("failed to reboot the internet", $Error[0])
}

我的问题是,[System.Management.Automation.ErrorRecord]类型将接受PowerShell可能生成的任何潜在错误对象,还是在某些情况下重载解析失败。也许我应该使用[System.Exception]还是[psobject]

0 个答案:

没有答案