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.
Top comments (0)