Бросать исключения, когда ошибки происходят внутри функции - PullRequest
0 голосов
/ 06 марта 2019

Я пишу сценарий 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 голосов
/ 06 марта 2019

Насколько я понимаю, вы ищете ошибку захвата всех функций без многократного try-catch.В этом сценарии вы можете использовать механизм регистрации ошибок для его обработки

Механизм регистрации ошибок

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
}
}
0 голосов
/ 06 марта 2019

Не совсем понятно, какие исключения вы пытаетесь сгенерировать, но если вы просто хотите вручную сгенерировать и с ошибкой остановить скрипт, используйте команду throw.

...