Материал wikipedia об исключительных ситуациях при выполнении программ здесь
Поскольку PowerShell основана на концепции .Net, все возникающие и обрабатываемые исключения выполнения являются частью .Net. Если при выполнении метода .Net происходит ошибка, которая не может быть обработана внутри самого метода, то возникает исключительная ситуация, информация о которой передается в участок кода, откуда был вызван метод. В .Net для обработки исключительных ситуаций используется объект System.Exception.
Для обработки исключений в PowerShell используются инструкции Throw и Trap.
Инструкция Throw используется для "проталкивания" информации об исключении вызывающему методу. Причем в отличии от .Net, в PowerShell можно "проталкивать" не только исключения, но и результаты выполнения команд.
Например:
Throw (new-object IO.DirectoryNotFoundException) - создаст System.Exception "Попытка доступа к пути, отсутствующему на диске".
Throw (ls *.*) - Создаст исключительную ситуацию System.Exception со свойством Message, установленным в результат исполнения команды ls *.*
Для перехвата исключительной ситуации используется инструкция Trap. Переменная $ErrorActionPrefrences определяет, будут ли инструкции Trap обрабатываться.
Для обработки исключений в PowerShell используются инструкции Throw и Trap.
Инструкция Throw используется для "проталкивания" информации об исключении вызывающему методу. Причем в отличии от .Net, в PowerShell можно "проталкивать" не только исключения, но и результаты выполнения команд.
Например:
Throw (new-object IO.DirectoryNotFoundException) - создаст System.Exception "Попытка доступа к пути, отсутствующему на диске".
Throw (ls *.*) - Создаст исключительную ситуацию System.Exception со свойством Message, установленным в результат исполнения команды ls *.*
Для перехвата исключительной ситуации используется инструкция Trap. Переменная $ErrorActionPrefrences определяет, будут ли инструкции Trap обрабатываться.
Комментариев нет:
Отправить комментарий