Использование попытки/выгоды Обработать Ошибки

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

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

  • Должен очистить нежелательные побочные эффекты ошибки

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

Расположение try/catch операторы в блоки кода, похожие на этот псевдокод:

try
  try block...
catch
  catch block...
end
Если ошибка происходит в try blockMATLAB® пропуски любые остающиеся команды в 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. Используя оператор попытки/выгоды, можно избежать ошибки и выполнить эту функцию независимо от порядка входных параметров:

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.

Смотрите также

| |

Для просмотра документации необходимо авторизоваться на сайте