Вы можете использовать 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.