Можно выдать предупреждение, чтобы отметить неожиданные условия, обнаруженные при выполнении программы. warning
функционируйте распечатывает предупреждающее сообщение к командной строке. Предупреждения отличаются от ошибок двумя значительными способами:
Предупреждения не останавливают осуществление программы.
Можно подавить любой бесполезный MATLAB® предупреждения.
Используйте warning
функционируйте в своем коде, чтобы сгенерировать предупреждающее сообщение во время выполнения. Задайте сообщение как входной параметр к warning
функция:
warning('Input must be text')
Например, можно вставить предупреждение в код, чтобы проверить версию программного обеспечения:
function warningExample1 if ~strncmp(version, '7', 1) warning('You are using a version other than v7') end
Можно выдать ошибку отметить критические проблемы в рамках программы. Используйте error
функционируйте, чтобы распечатать сообщения об ошибке к командной строке. После отображения сообщения MATLAB останавливает осуществление текущей программы.
Например, предположите, что вы создаете функцию, которая возвращает количество комбинаций k
элементы от n
элементы. Такая функция бессмысленна если k > n
; вы не можете выбрать 8 элементов, если вы начинаете со всего 4. Необходимо включить этот факт в функцию, чтобы позволить любому использующему combinations
знайте о проблеме:
function com = combinations(n,k) if k > n error('Cannot calculate with given values') end com = factorial(n)/(factorial(k)*factorial(n-k)); end
Если combinations
функция получает недопустимый вход, выполнение остановок MATLAB сразу после броска сообщения об ошибке:
combinations(4,8)
Error using combinations (line 3) Cannot calculate with given values
Чтобы сделать ваши предупреждающие сообщения или сообщения об ошибке более конкретными, вставьте компоненты сообщения во время выполнения. warning
функционируйте символы преобразования использования, которые совпадают с используемыми sprintf
функция. Действие символов преобразования как заполнители для подстрок или значений, неизвестных, пока, код не выполняется.
Например, это предупреждение использует %s
и %d
отметить, где вставить значения переменных arrayname
и arraydims
:
warning('Array %s has %d dimensions.',arrayname,arraydims)
arrayname = 'A'
и arraydims = 3
, MATLAB отвечает:Warning: Array A has 3 dimensions.
Добавление параметров периода выполнения к вашим предупреждениям и ошибкам может разъяснить проблемы в рамках программы. Рассмотрите функциональный combinations
от Ошибок Броска. Можно выдать намного более информативную ошибку параметры периода выполнения:
function com = combinations(n,k) if k > n error('Cannot choose %i from %i elements',k,n) end com = factorial(n)/(factorial(k)*factorial(n-k)); end
combinations(6,9)
Error using combinations (line 3) Cannot choose 9 from 6 elements
Идентификатор обеспечивает способ исключительно сослаться на предупреждение или ошибку.
Включите или отключите предупреждения с идентификаторами. Используйте текстовый аргумент идентификации с warning
функционируйте, чтобы присоединить уникальный тег к сообщению:
warning(identifier_text,message_text)
Например, можно добавить тег идентификатора в предыдущее предупреждение MATLAB, о котором запускается версия программного обеспечения:
minver = '7'; if ~strncmp(version,minver,1) warning('MYTEST:VERCHK','Running a version other than v%s',minver) end
Добавление идентификатора к сообщению об ошибке допускает отрицательное тестирование. Однако добавление и восстановление большей информации от ошибок часто требуют работы с MException
объекты.
warning
| lastwarn
| warndlg
| MException