Qualidade de código
Atividade 5 (Exceções)
(01) Qual é a desvantagem em ter o código de tratamento de erros juntamente com a própria lógica do negócio?
O uso de tratamento de erro juntamente com a lógica do negócio, mascara o objetivo do código e aumenta a probabilidade de um bug passar despercebido, ficando mais difícil encontrar a causa do erro posteriormente.
(02) Quando devem ser usadas as exceções?
Exceções só devem ser usadas para relatar e manipular condições de erro, ou seja, em condições excepcionais; nunca para controle de fluxo comum.
(03) Explique os blocos try/catch/finally.
Sempre que um método de alguma classe é passível de causar algum erro, então, podemos usar o método de tentativa: o try.
Tudo que estiver dentro do bloco try será executado até que alguma exceção seja lançada, ou seja, até que algo dê errado.
Quando uma exceção é lançada, ela sempre deve ser capturada. O trabalho de captura da exceção é executado pelo bloco catch.
Um bloco try pode possuir vários blocos de catch, dependendo do número de exceções que podem ser lançadas por uma classe ou método.
O bloco catch obtém o erro criando uma instância da exceção. Portanto, a sintaxe do bloco try catch é: try { // código a ser executado
} catch (ClasseDeExceção instânciaDaExceção) { // tratamento da exceção
}
Finally é o trecho de código final. A função básica de finally é sempre executar seu bloco de dados mesmo que uma exceção seja lançada.
É muito útil para liberar recursos do sistema quando utilizamos, por exemplo, conexões de banco de dados e abertura de buffer para leitura ou escrita de arquivos.
Finally virá após os blocos de catch. try { // código a ser executado
} catch (ClasseDeExceção instânciaDaExceção) { // tratamento da exceção
} finally { // código a ser executado mesmo que uma exceção seja lançada
}
(04) Explique o princípio OCP (Open Closed Principle), ou Princípio Aberto Fechado. Porque ele é importante para um