rethrow

Lança novamente uma exceção, normalmente de dentro de um bloco catch.

Categoria: Programming > Programming Utilities

Sintaxe

rethrow(ME)

Lança a exceção ME com seu identificador e mensagem originais.

rethrow(errStruct)

Lança um erro descrito por um struct com os campos message e identifier.

Descrição

Um bloco catch que trata parte de um problema, como liberar um recurso, pode repassar o erro a quem chamou com rethrow(ME) em vez de escondê-lo. Quem chamou vê então o identificador e a mensagem originais.

Argumentos de entrada

ME
Um objeto MException.
errStruct
Struct com pelo menos os campos message e identifier.

Exemplo

Limpando e repassando o erro

try
    try
        error('io:fail', 'disk error')
    catch inner
        disp('cleaning up')
        rethrow(inner)
    end
catch outer
    disp(outer.identifier)
end
Saída
cleaning up
io:fail

Veja também

throw error MException try, catch throwAsCaller