Devo usar asserções?

Devo usar asserções?
Devo usar asserções?
Anonim

Assertions devem ser usadas para checar algo que nunca deveria acontecer, enquanto uma exceção deve ser usada para checar algo que pode acontecer. Por exemplo, uma função pode dividir por 0, então uma exceção deve ser usada, mas uma asserção pode ser usada para verificar se o disco rígido desaparece repentinamente.

A afirmação é boa ou ruim?

Não, nem goto nem assert are evil. Mas ambos podem ser mal utilizados. Assert é para verificações de sanidade. Coisas que deveriam matar o programa se não estiverem corretas.

Por que as afirmações são ruins?

Assertions podem ser usadas para verificar invariantes internos de implementação, como estado interno antes ou depois da execução de algum método, etc. Se a assertion falhar, realmente significa que a lógica do programa está quebrada e você pode' t se recupere disso.

As afirmações são uma boa prática?

O guia de linguagem que introduz asserções tem algumas boas diretrizes que são basicamente o que acabei de descrever. Sim, é uma boa prática. No caso do Spring, é particularmente importante porque as verificações estão validando configurações de propriedades, etc., que normalmente vêm de arquivos de conexão XML.

Em quais casos as assertivas são úteis?

Assumindo que o código está sendo testado adequadamente, as asserções fazem várias coisas úteis: Detectar erros sutis que poderiam passar despercebidos . Detectar erros antes que eles ocorram do que poderiam ser detectados de outra forma. Faça uma afirmaçãosobre os efeitos do código que são garantidos como verdadeiros.

Recomendado: