Mudanças entre as edições de "Manual do Desenvolvedor"

De Grupo Acert
Ir para: navegação, pesquisa
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.

Edição das 15h43min de 28 de setembro de 2011