exponenta event banner

бросок

Исключение броска

Синтаксис

Описание

пример

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

throw функция, в отличие от throwAsCaller и rethrow создает трассировку стека из местоположения, где MATLAB вызывает функцию.

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

Примеры

свернуть все

Создать исключение, если имя входной переменной не существует в рабочей области.

str = input('Type a variable name: ','s');
if ~exist(str,'var')
    ME = MException('MyComponent:noSuchVariable', ...
        'Variable %s not found',str);
    throw(ME)
end

В ответ на запрос ввода введите любую переменную, которая не существует в рабочей области. Например, введите notaVariable.

Variable notaVariable not found

С тех пор notVariable не существует в рабочей области, MATLAB создает и запускает MException объект.

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

function C = combineArrays(A,B)
try
    C = catAlongDim1(A,B);       % Line 3
catch exception
    throw(exception)             % Line 5
end
end

function V = catAlongDim1(V1,V2)
V = cat(1,V1,V2);                % Line 10
end

Позвоните в combineArrays функция с массивами разных размеров.

A = 1:5;
B = 1:4;

combineArrays(A,B)
Error using combineArrays (line 5)
Dimensions of matrices being concatenated are not consistent.

Стек относится к строке 5, где MATLAB создает исключение.

Заменить throw(exception) с rethrow(exception) на линии 5 combineArrays и вызовите функцию снова.

combineArrays(A,B)
Error using cat
Dimensions of matrices being concatenated are not consistent.

Error in combineArrays>catAlongDim1 (line 10)
V = cat(1,V1,V2);                % Line 10

Error in combineArrays (line 3)
    C = catAlongDim1(A,B);       % Line 3

rethrow функция поддерживает исходный стек и указывает, что ошибка находится в строке 3.

Входные аргументы

свернуть все

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

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