assert

Gera um erro se uma condição for falsa.

Categoria: Programming > Functions

Sintaxe

assert(cond)

Gera o erro Assertion failed. a menos que todo elemento de cond seja verdadeiro.

assert(cond, msg, A1, ..., An)

Gera erro com a mensagem msg, formatada como sprintf, quando a condição falha.

Descrição

assert documenta suposições e interrompe cedo quando alguma é violada, o que é mais fácil de depurar do que um resultado errado várias linhas depois. Uma condição não escalar passa apenas se todos os elementos forem verdadeiros, então assert(all(x > 0)) pode ser escrito como assert(x > 0). Quando a condição é verdadeira, a chamada não faz nada.

O MATLAB também aceita as formas assert(actual, expected) e assert(actual, expected, tol), que comparam valores, e um identificador antes da mensagem.

Argumentos de entrada

cond
Array lógico ou numérico. A verificação passa quando todos os elementos são diferentes de zero.
msg
Mensagem de erro, com campos de formato de sprintf.
A1, ..., An
Valores para os campos de formato.

Exemplo

Uma verificação que falha com mensagem formatada

x = [3 -1 2];
try
    assert(all(x > 0), 'Found %d non-positive values', sum(x <= 0));
catch err
    disp(err.message)
end
assert(true)
Saída
Found 1 non-positive values

Observações

O MatLivre implementa apenas as formas com condição. As formas de comparação (actual, expected, tol) não são suportadas: o segundo argumento é sempre lido como mensagem. Um identificador dado antes da mensagem não é separado dela, então o erro fica sem identificador.

Veja também

error validateattributes MException isequal