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