函数内发生错误时引发异常

时间:2019-03-06 06:32:08

标签: powershell powershell-v5.0

我正在编写一个带有try-catch的PowerShell脚本,该try-catch调用了许多函数。

function A {
  # exceptions here won't trigger the catch
}

function B {}

try {
  # exceptions here will trigger the catch

  A
  B
} catch {
  # handle errors
}

如何在默认情况下不向每个函数内写入try catch块的情况下使这些函数向上游抛出异常?

2 个答案:

答案 0 :(得分:0)

不能真正弄清楚尝试抛出哪些异常,但是如果您只是想手动抛出并出错以停止脚本,请使用throw命令。

答案 1 :(得分:0)

据我了解,您正在寻找无需多次try-catch即可捕获所有功能的错误。在这种情况下,您可以使用错误记录机制进行处理

Error-logging Mechanism

function logger($val1 , $val2)
{
try
{
echo $val1 $val2
if ($val1 -eq 'Fail')
{ 
"Wrong Input passed so it was logged as error" + $val1 | out-file -Filepath $logfile -append
}
}
catch
{
$_.Exception.Message | out-file -Filepath $logfile -append
}
}