我正在'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() )
}
在主代码中,我在Trap
和Catch
块中调用Log方法,以在日志中记录错误的详细信息,然后将$Error[0]
作为errorObject参数传入,例如< / p>
Catch {
$gLogger.Log("failed to reboot the internet", $Error[0])
}
我的问题是,[System.Management.Automation.ErrorRecord]
类型将接受PowerShell可能生成的任何潜在错误对象,还是在某些情况下重载解析失败。也许我应该使用[System.Exception]
还是[psobject]
?