try, catch

Executa código e trata qualquer erro lançado em vez de interromper o programa.

Categoria: Programming > Programming Utilities

Sintaxe

try, statements, catch, handler, end

Executa statements; se ocorrer um erro, executa handler e continua após end.

try, statements, catch ME, handler, end

Também guarda o erro como MException na variável ME para o handler inspecionar.

Descrição

A execução do bloco try para no primeiro erro, ignora o restante do bloco e salta para o bloco catch. Se nenhum erro ocorre, o bloco catch é ignorado. Os comandos de cada bloco podem estar em linhas separadas; try e catch também podem ser escritos com vírgulas em uma única linha.

Dentro do handler, o identificador indica que tipo de problema ocorreu, então switch ME.identifier pode tratar os esperados e rethrow(ME) pode repassar os demais.

Argumentos de entrada

ME
Nome da variável que recebe a exceção: seu identifier, message e outras propriedades descrevem o erro.

Exemplo

Capturando um erro de indexação

x = [1 2 3];
try
    y = x(5);
catch ME
    disp(ME.identifier)
    disp(ME.message)
end
disp('program continues')
Saída
MATLAB:badsubscript
Index exceeds the number of array elements. Index must not exceed 3.
program continues

Veja também

error MException rethrow lasterr onCleanup