我试图赶上异常调用运行这样的其他功能的功能:Powershell的尝试捕捉
$ErrorActionPreference = "Stop"
function f {
$a = 1
$b = $a/0
}
function Main($f) {
try {
$f
} catch [System.Exception] {
"Caught exception"
}
}
Main(f)
的问题是,该异常没有被捕获像这样的PowerShell显示消息:
Attempted to divide by zero.
In C:\test.ps1:4 car:5
+ $b = $a/0
+ ~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (:) [], ParentContainsErrorRecordException
+ FullyQualifiedErrorId : RuntimeException
为什么异常没有被捕获,即使$ErrorActionPreference = "Stop"
是对代码的顶部?
没有高阶函数在你的榜样 –