бросок

Класс: MException

Выдача исключения

Синтаксис

выдача исключения

Описание

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

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

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

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

развернуть все

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

Примеры

развернуть все

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

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.

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

Была ли эта тема полезной?