Item 69: Utilize as exceções somente em circunstâncias excepcionais
Java Efetivo (livro)
Posted on November 14, 2024
Evite usar exceções para controle de fluxo comum:
Exceções devem ser usadas apenas para situações inesperadas, e não para controlar o fluxo de um programa.
Exemplo de código problemático: tentar usar uma exceção para finalizar um loop ao ultrapassar os limites de um array.
try {
int i = 0;
while (true) {
System.out.println(array[i++]);
}
} catch (ArrayIndexOutOfBoundsException e) {
// Este código encerra o loop quando o índice ultrapassa o tamanho do array
}
Problemas: Esse uso de exceções é ineficiente e confuso. É melhor utilizar uma estrutura de loop adequada.
for (int i = 0; i < array.length; i++) {
System.out.println(array[i]);
}
Implicações de design de API:
Uma API bem projetada deve evitar forçar o uso de exceções para o fluxo normal.
Exemplo: a interface Iterator fornece o método hasNext() para verificar se há mais elementos, evitando exceções desnecessárias ao chamar next().
Iterator<String> iterator = list.iterator();
while (iterator.hasNext()) {
System.out.println(iterator.next());
}
Alternativas para métodos dependentes de estado:
Forneça um método separado para testar o estado (hasNext) ou um valor de retorno especial, como null ou um Optional, quando o estado esperado não puder ser atendido.
Posted on November 14, 2024
Join Our Newsletter. No Spam, Only the good stuff.
Sign up to receive the latest update from our blog.
Related
November 28, 2024