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