throwAsCaller

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

Синтаксис

Описание

пример

throwAsCaller(exception) выдает исключение, как будто оно происходит в функции вызова. Исключение отключает в настоящее время рабочую функцию и возвращает управление в клавиатуру или включение catch блок. Когда вы выдаете исключение снаружи try/catch оператор, MATLAB® отображает сообщение об ошибке в Командном окне.

Можно получить доступ к MException объект через try/catch оператор или MException.last функция.

Иногда, это более информативно для ошибки указать на местоположение в функции вызова, которая приводит к исключению вместо того, чтобы указывать на функцию, которая на самом деле выдает исключение. Можно использовать throwAsCaller упростить ошибочное отображение.

Примеры

свернуть все

Создайте функцию, sayHello, в вашей рабочей папке.

function sayHello(N)
checkInput(N)
str = ['Hello, ' N '!'];
disp(str)

function checkInput(N)
if ~ischar(N)
    ME = MException('sayHello:inputError','Input must be char.');
    throw(ME)
end

В командной строке вызовите функцию с числовым входом.

sayHello(42)
Error using sayHello>checkInput (line 9)
Input must be char.

Error in sayHello (line 2)
checkInput(N)

Верхняя часть стека относится, чтобы выровнять 9, потому что это - то, где MATLAB выдает исключение. После начального стекового фрейма MATLAB отображает информацию от функции вызова.

Замените throw(ME) с throwAsCaller(ME) в линии 9 из sayHello.m и вызовите функцию снова.

sayHello(42)
Error using sayHello (line 2)
Input must be char.

Верхняя часть стека относится, чтобы выровнять 2, потому что это - местоположение ошибки в функции вызова.

Входные параметры

свернуть все

Исключение, содержащее причину и местоположение ошибки, заданной как скалярный MException объект.

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

| | | |

Представленный в R2007b

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