Используйте try/catch, чтобы обработать ошибки

Вы можете использовать try/catch оператор для выполнения кода после того, как программа столкнулась с ошибкой. try/catch операторы могут быть полезны, если вы:

  • Хотите закончить программу другим способом, который избегает ошибок

  • Необходимо очистить нежелательные побочные эффекты ошибки

  • Иметь много проблемных входных параметров или команд

Договориться try/catch операторы в блоки кода, подобные этому псевдокоду:

try
  try block...
catch
  catch block...
end
Если ошибка возникает в try block, MATLAB® пропускает все оставшиеся команды в try блокирует и выполняет команды в catch block. Если в try block не происходит никакой ошибкиMATLAB пропускает всю catch block.

Для примера, a try/catch оператор может предотвратить необходимость выдачи ошибок. Рассмотрим combinations функция, которая возвращает количество комбинаций k элементы из n элементы:

function com = combinations(n,k)
    com = factorial(n)/(factorial(k)*factorial(n-k));
end

MATLAB выдает ошибку каждый раз k > n. Вы не можете создать набор с большим количеством элементов, k, чем элементы, которыми вы обладаете, n. Используя оператор try/catch, можно избежать ошибки и выполнить эту функцию независимо от порядка входов:

function com = robust_combine(n,k)
    try
       com = factorial(n)/(factorial(k)*factorial(n-k));
    catch
       com = factorial(k)/(factorial(n)*factorial(k-n));
    end
end
robust_combine рассматривает любой порядок целых чисел как допустимые входы:
C1 = robust_combine(8,4)
C2 = robust_combine(4,8)
C1 =

    70


C2 =

    70

Вы можете получить дополнительную информацию об ошибках, если переменная следует за вами catch оператор:

catch MExc
MExc является MException объект класса, который содержит дополнительные сведения о выданной ошибке. Чтобы узнать больше о доступе к информации от MException объекты, см. раздел «Обработка исключений» в приложении MATLAB.

См. также

| |