Mudanças entre as edições de "Manual do Desenvolvedor"
De Grupo Acert
Linha 118: | Linha 118: | ||
NOTA: Se for extremamente necessário este tipo de armazenamento, limitar a quantidade de objetos armazenados. Este tipo de necessidade deve ser avisado e planejado antecipadamente. | NOTA: Se for extremamente necessário este tipo de armazenamento, limitar a quantidade de objetos armazenados. Este tipo de necessidade deve ser avisado e planejado antecipadamente. | ||
+ | |||
+ | == Tratamento de Erros e de Exceções == | ||
+ | |||
+ | Por definição: | ||
+ | |||
+ | * Exceções - É uma ocorrência que altera o fluxo do programa. As exceções podem ocorrer por falhas de hardware, problemas no acesso a recursos e execução de regras no sistema. Existem 2 tipos de exceção na prática: | ||
+ | ** Exception - exceções verificadas (checked exceptions) pelo compilador. As exceções verificadas que um método pode lançar devem fazer parte da sua assinatura. Por exemplo, se um método pode lançar a exceção IOException, ele precisa declarar este fato na sua assinatura, senão um erro em tempo de compilação é assinalado. | ||
+ | ** RuntimeException - são exceções não verificadas pelo compilador. Sendo assim, não é requisito declarar uma cláusula try{} e catch{} e nem constar na assinatura do método. | ||
+ | * Erros – são problemas que acontecem e que não são previstos, por exemplo: tipos, overflow, null. ex.: estouro da memória. | ||
+ | |||
+ | == Construção de Classes == | ||
+ | |||
+ | === Evitar assinatura de métodos com mais de 5 parâmetros === | ||
+ | |||
+ | Como padrão não utilize mais de 5 parâmetros na assinatura da classe. Quando isso tiver que acontecer, crie um objeto para encapsular os dados necessários de forma consistente. | ||
+ | |||
+ | === Utilização de métodos estáticos com operador de escopo === | ||
+ | |||
+ | Utilizar sempre o operador de escopo para acesso a métodos estáticos. Por exemplo: PessoaFisica.metodoEstatico(p1); | ||
+ | |||
+ | === Evitar a chamada de métodos que não sejam final, estáticos ou privados dentro de construtores === | ||
+ | |||
+ | O objetivo do construtor é inicializar um objeto. Se o método puder ser acessado por uma subclasse, poderá ser feito um override, gerando um resultado não esperado. |