Estudos gratuitos da ER Soluções WebVer outros conteúdos grátis
ER Soluções WebEstudos · Code Complete

8.2. Exceções, barricadas e código de depuração

Exceção só para o excepcional; barricada na fronteira; falhe alto em desenvolvimento.

Barricada separando dados externos sujos de classes internas que assumem dados limpos
Valide na fronteira, confie do lado de dentro.

Resumo

Perguntas-chave

responda de cabeça, depois abra
O que é lançar exceção no nível de abstração errado?
Por exemplo, Funcionario.getId() lançar EOFException: expõe um detalhe de implementação (arquivo) na interface de um conceito do domínio.
Como funciona a barricada?
Rotinas na interface externa validam e sanitizam os dados; as classes internas assumem que tudo que chega está correto.
O que deixar na versão de produção?
Checagens de erros importantes, código que ajuda a falhar de forma elegante e registro de erros; tirar o que é trivial ou causa travamentos.

Exercícios de fixação

0/5 respondidas
1.
Funcionario.getEndereco() lança SQLException para quem chama. Qual o problema?
2.
try { gravar(); } catch (Exception e) { } é um exemplo de:
3.
Numa arquitetura com barricada, o que fazer quando uma classe interna recebe dado inválido?
4.
Programação ofensiva, durante o desenvolvimento, significa:
5.
Usar exceção para sair de um laço comum de leitura de arquivo, como fluxo normal, é:
Seu progresso fica salvo neste navegador.