我正在尝试从异常消息中获取脚本名称,函数名称,行号和消息。除了功能名称,我可以接受其他人。 我的代码如下
function dividebyzero {
try {
1/0
} catch {
throw $_
}
}
上述功能位于文件ExceptionSample.Psm1
中。
Import-Module C:\Scripts\ExceptionSample.Psm1
function Write-ErrorLog {
Param(
[System.Management.Automation.ErrorRecord]$ErrorInfo
)
$formatstring = "[Script ({0}), function {1} , Line {2}, Message {3}]"
if ($ErrorInfo.InvocationInfo.ScriptName) {
# this is done to correctly recieve the original error back from Pester mocks
$scriptname = $(Split-Path -Path $ErrorInfo.InvocationInfo.ScriptName -Leaf)
}
$fields = $scriptname,
$ErrorInfo.InvocationInfo.MyCommand.Name,
$ErrorInfo.InvocationInfo.ScriptLineNumber,
$ErrorInfo.Exception.Message
$formatstring -f $fields
}
try {
dividebyzero
} catch {
Write-ErrorLog -ErrorInfo $_
}
输出除功能名称外。
[Script (ExceptionSample.Psm1), function , Line 5, Message Attempted to divide by zero.]
缺少什么?有没有其他方法来获取函数名称?