如果自己写函数动态地去执行一些脚本块或者脚本文件,那么捕获到异常时行号和列号信息非常有用。例如脚本文件:
trap{
$info=$_.InvocationInfo
"在第{0}行,第{1}列捕获到异常:{2}" -f $info.ScriptLineNumber,$info.OffsetInLine ,$_.Exception.Message
continue
}
get-date
1gb/2kb
Get-Service | foreach {1/0}
执行结果为:
Thursday, June 26, 2014 4:41:41 PM
524288
在第9行,第15列捕获到异常:Attempted to divide by zero.