Вы можете использовать try/catch инструкция для выполнения кода после того, как программа обнаружит ошибку. try/catch операторы могут быть полезны, если:
Хотите закончить программу другим способом, чтобы избежать ошибок
Необходимо устранить нежелательные побочные эффекты ошибки
Наличие множества проблемных входных параметров или команд
Договориться try/catch операторы в блоки кода, аналогичные этому псевдокоду:
try try block... catch catch block... end
try block, MATLAB ® пропускает все оставшиеся команды в try и выполняет команды в catch block. При отсутствии ошибок в течение try block, MATLAB пропускает весь catch block.Например, 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.