Я пытаюсь получить имя сценария, имя функции, номер строки и сообщение из сообщения об исключении.Кроме имени функции я могу взять другие.Мой код, как показано ниже
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.]
Чего не хватает?Есть ли другой способ получить имя функции?