Ошибка при записи и предупреждающие сообщения

Блокноты MuPAD® будут демонтированы в будущем релизе. Используйте live скрипты MATLAB® вместо этого.

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

При записи процедуры в MuPAD® можно включать сообщения об ошибке и предупреждающие сообщения в процедуре. Если система сталкивается с ошибкой при выполнении процедуры, она отключает осуществление процедуры и отображает сообщение об ошибке. Если система сталкивается с предупреждением, она распечатывает предупреждающее сообщение и продолжает выполнять процедуру. Можно задать собственную ошибку и предупреждающие сообщения.

Функция error отключает осуществление текущей процедуры с ошибкой. Например, следующая процедура преобразовывает номер месяца к имени месяца. Процедура проверяет тип своего аргумента и принимает только положительные целые числа. С тех пор существует только 12 месяцев через год, процедура должна также гарантировать, что номер не превышает 12. Функция error позволяет вам отключить вызов процедуры с соответствующим сообщением об ошибке, если номер больше, чем 12:

monthNumberToName := proc(n:Type::PosInt)
begin
  if n > 12 then
   error("Invalid number. The number must not exceed 12.")
  end_if;
  case n
    of 1 do return(January)
    of 2 do return(February)
    of 3 do return(March)
    of 4 do return(April)
    of 5 do return(May)
    of 6 do return(June)
    of 7 do return(July)
    of 8 do return(August)
    of 9 do return(September)
    of 10 do return(October)
    of 11 do return(November)
    of 12 do return(December)
  end_case:
end:

Если вы вызываете monthNumberToName с каким-либо целым числом от 1 до 12, процедура возвращает имя месяца:

monthNumberToName(12)

Если вы вызываете monthNumberToName с целым числом, больше, чем 12, процедура останавливается с заданной ошибкой:

monthNumberToName(13)
Error: Invalid number. The number must not exceed 12. [monthNumberToName]

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

Следующая процедура использует функцию simplify, чтобы упростить часть. Функция неявно принимает, что переменная x не равна a. Если ваша процедура использует функцию simplify, можно добавить соблюдающее предупреждение для пользователей:

simplifyW := proc(a)
begin
  warning("Assuming x <> ".expr2text(a));
  simplify((x^2 - a^2)/(x - a))
end:

Теперь, ваша процедура сообщает своим пользователям о предположении:

simplifyW(10)
Warning: Assuming x <> 10 [simplifyW]