Обработка исключений
Вызов исключений
Команда throw "Bad thing happened" создает исключение и прерывает выполнение скрипта.
Командлет Write-Error -Message "Houston, we have a problem." -ErrorAction Stop выводит ошибку, а установка ErrorAction в Stop, заставляет скрипт остановиться с этой ошибкой.
Обработка исключений
Принцип обработки ошибок в PowerShell основан на конструкции:
try {
# код, в котором может произойти ошибка
}
catch {
# код для обработки ошибки
}
finally {
# код, который выполняется всегда после try/catch
}Код в блоке
tryвыполняется первым.Если во время выполнения
tryвозникает неустранимая ошибка, управление передается блокуcatch. В случае отсутствия ошибок блокcatchпропускается.В блоке
catchдоступна автоматическая переменная$PSItem(или$_) типаErrorRecord, которая содержит детали исключения.Блок
finallyвыполняется всегда, независимо от того, возникла ошибка или нет. Он используется, чтобы гарантировать выполнение важного кода, например, закрытие соединений или освобождение ресурсов.Можно использовать одновременно и
catch, иfinally. Это позволяет обрабатывать ошибки и при этом всегда выполнять завершающие действия, независимо от результата.
Пример:
try {
throw "Bad thing happened"
}
catch {
Write-Host "Ошибка: $($_.Exception.Message)" -ForegroundColor Red
}
finally {
Write-Host "Этот блок выполнится всегда"
}В данном примере исключение вызывается через throw, затем перехватывается в catch, где выводится сообщение об ошибке, и потом происходит выполнение finally, где можно разместить завершающий код.
Эта модель упрощает написание надежных скриптов с управлением ошибками и очисткой ресурсов.
Такой подход к исключениям помогает создавать более устойчивые и удобные для сопровождения PowerShell скрипты, минимизируя неожиданные прерывания и обеспечивая своевременную реакцию на ошибки.
С дополнительной информацией можно ознакомиться по ссылке:
Last updated