Независимо от того, насколько тщательно вы планируете и тестируете написанные программы, они не всегда работают так гладко, как ожидалось при выполнении в различных условиях. Всегда рекомендуется включать проверку ошибок в программы для обеспечения надежной работы при любых условиях.
В программном обеспечении MATLAB ® можно решить, как программы реагируют на различные типы ошибок. Можно запросить у пользователя дополнительные данные, вывести расширенную информацию об ошибках или предупреждениях или повторить расчет с использованием значений по умолчанию. Функции обработки ошибок в MATLAB помогают программам проверять наличие определенных ошибок и выполнять соответствующий код в зависимости от ситуации.
Когда MATLAB обнаруживает серьезную ошибку в выполняемой команде или программе, он собирает информацию о том, что происходило во время ошибки, отображает сообщение, чтобы помочь пользователю понять, что пошло не так, и завершает команду или программу. Это называется выбросом исключения. Исключение можно получить при вводе команд в командной строке 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:
Проверьте сведения об ошибке.
Соберите дополнительную информацию, чтобы сообщить об этом пользователю.
Постарайтесь выполнить поставленную задачу другим способом.
Устраните нежелательные побочные эффекты ошибки.
По достижении конца блока комплектования можно либо продолжить выполнение программы, если это возможно, либо завершить ее.
Использовать MException объект для доступа к информации об исключении в программе. Дополнительные сведения см. в разделе Ответ на исключение.
Когда код программы обнаруживает условие, которое либо приведет к сбою программы, либо приведет к недопустимым результатам, это должно вызвать исключение. Эта процедура
Сохраняет информацию о том, что произошло неправильно и какой код выполнялся во время ошибки.
Собирает любую другую информацию об ошибке.
Предписывает MATLAB создать исключение.
Использовать MException объект для сбора информации об ошибке. Дополнительные сведения см. в разделе Создание исключения.