Можно выдать предупреждение, чтобы отметить неожиданные условия, обнаруженные при выполнении программы. Функция 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.
MException | lastwarn | warndlg | warning