O que são Exceptions?
As Exceções (Exceptions) são um conjunto de classes destinadas a sinalização de erros ocorridos em tempo de execução e que pode ser usadas para prover para tratamento específico dos erros através das diretivas try catch e try finally. Existe uma classe básica denominada Exception existente no pacote java.lang.
A idéia central é que ao invés de colocarmos vários testes no código para detectar e contonar eventuais erros ou condições indesejadas efetuamos a programação para o caso ideal (sem tratamento direto de erros) e isolamos os trechos problematicos (onde podem ocorrer tais erros) com as diretivas try.
Se ocorre algum erro o fluxo do programa é desviado do bloco isolado pelo try para o bloco catch que trata a exceção especificada ou genérica. Podemos ainda usar uma rotina de finalizacao (finally. Por exemplo, como garantir que a string contida num argumento pode ser convertida em inteiro e como evitar erros caso não seja fornecida?
public static final void main(String args[]) { try { // Nao nos preocupamos com problemas for (int i=0; i<Integer.parseInt(args[0]);i++) { System.out.println("Testando..."); // outros comandos do bloco } catch (InvalidNumberFormatException e) { // Aqui pegamos os erros de conversao System.out.println("Argumento invalido!"); } catch (OutOfBoundsException e) { // Aqui pegamos a falta de argumentos System.out.println("Numero insuficiente de argumentos!"); } }
Note que o código fica bem dividido entre rotina normal e rotina de tratamento de erro. Além disso simplifica a programação. Outro ponto importante, no bloco catch o e é um nome qualquer para uma variável que recebe o objeto Exception criado quando da ocorrência de erros. Tais objetos podem ser usados dentro deste bloco e carregam informações adicionais sobre o erro.