Обработка исключений в приложении MATLAB

Панорама

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

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

То, когда MATLAB обнаруживает серьезный отказ в команде или программе, это запускается, это собирает информацию о том, что происходило во время ошибки, отображает сообщение, чтобы помочь пользователю изучить то, что пошло не так, как надо и отключает команду или программу. Это называется throwing an exception. Можно получить исключение при вводе команд в командной строке MATLAB или при выполнении кода программы.

Получение исключения в командной строке

Если вы получаете исключение в посдказке MATLAB, у вас есть несколько опций о том, как иметь дело с нею аналогичный описанному ниже.

Определение отказа из сообщения об ошибке

Выполните сообщение об ошибке, которое отобразил MATLAB. Большинство сообщений об ошибке пытается объяснить, по крайней мере, мгновенную причину отказа программы. Часто существует достаточная информация, чтобы определить причину и что необходимо сделать, чтобы исправить ситуацию.

Рассмотрение провального кода

Если функция, в которой произошла ошибка, реализована как файл программы MATLAB, сообщение об ошибке должно включать линию, которая выглядит примерно так:

surf

Error using surf (line 49)
Not enough input arguments.

Текст включает имя функции, которое выдало ошибку (surf, в этом случае), и показывает провальный номер строки в программном файле этой функции. Кликните по номеру строки; MATLAB открывает файл и располагает курсор в местоположении в файле где порожденная ошибка. Можно смочь определить причину ошибки путем исследования этой линии и кода, который предшествует ему.

Продвижение через код в отладчик

Можно использовать Отладчик MATLAB, чтобы продвинуться через провальный код. Кликните по подчеркнутому тексту ошибки, чтобы открыть файл в редакторе MATLAB в или около точки ошибки. Затем кликните по дефису в начале той линии, чтобы установить точку останова в том местоположении. Когда вы повторно выполняете свою программу, MATLAB приостанавливает выполнение в точке останова и позволяет вам продвинуться через код программы. Команда dbstop on error также полезно в нахождении точки ошибки.

См. документацию относительно Отладки программа MATLAB для получения дополнительной информации.

Получение исключения в коде программы

Когда вы написали свою собственную программу в программном файле, вы можете исключения catch и попытка обработать или разрешить их вместо того, чтобы позволить вашей программе завершать работу. Когда вы отлавливаете исключение, вы прерываете нормальный процесс завершения и вводите блок кода, который справляется с дефектной ситуацией. Этот блок кода называется catch block.

Некоторые вещи, которые вы можете хотеть сделать в блоке выгоды:

  • Исследуйте информацию, которая была получена об ошибке.

  • Соберите дополнительную информацию, чтобы сообщить пользователю.

  • Попытайтесь выполнить задачу под рукой некоторым другим способом.

  • Очистите любые нежелательные побочные эффекты ошибки.

Когда вы достигаете конца блока выгоды, можно или продолжить выполнять программу, если это возможно, или отключать ее.

Используйте MException возразите, чтобы получить доступ к информации об исключении в вашей программе. Для получения дополнительной информации смотрите, Отвечают на Исключение.

Генерация нового исключения

Когда ваш код программы обнаруживает условие, которое или заставит программу привести к сбою или привести к недопустимым результатам, это должно выдать исключение. Эта процедура

  • Сохраняет информацию о том, что пошло не так, как надо и что код выполнял во время ошибки.

  • Собирает любую другую уместную информацию об ошибке.

  • Дает MATLAB команду выдавать исключение.

Используйте MException возразите, чтобы получить информацию об ошибке. Для получения дополнительной информации смотрите, Выдают Исключение.