Java Arquivo

3 respostas
mau43100

Pessoal, me tirem essa minha dúvida, para tratar exceção, tanto na escrita e tanto na leitura usa-se
catch(IOException ex){…
ou
catch(Exception e ){…
Obs: Uso Netbeans e vi o primeio exemplo usando eclipse, tem alguma diferença?

3 Respostas

TerraSkilll

Isso depende da exceção que você quer capturar e tratar, lembrando que você pode tratar ambos. Se você precisa fazer alguma coisa ao receber a exceção (por exemplo, avisar que o arquivo não pode ser escrito), mas quer ignorar todas as demais exceções, então capturar IOException é melhor que capturar Exception simplesmente (que pode ser gerada por outras coisas que não um problema com o arquivo, que dispara IOException).

Veja esses exemplos:

Abraço.

mau43100

posso criar várias exceções certo ?

TerraSkilll

Você pode capturar várias exceções em sequências, indo da mais específica para a mais genérica:

try{  
    int a[]=new int[5];  
    a[5]=30/0;  
   }  
   catch(ArithmeticException e){System.out.println("task1 is completed");}  
   catch(ArrayIndexOutOfBoundsException e){System.out.println("task 2 completed");}  
   catch(Exception e){System.out.println("common task completed");}  
  
   System.out.println("rest of the code...");  
 }

Tirado de: https://www.javatpoint.com/multiple-catch-block-in-java

E, a partir do Java 7, pode usar uma sintaxe mais enxuta, caso queira capturar exceções em um mesmo bloco:

try { 
  ...
} catch( IOException | SQLException ex ) { 
  ...
} catch( Exception e) {
  ...
}

Mas a ideia é que você capture as exceções relevantes para o seu código. Não faz muito sentido capturar SQLException ao fazer uma operação matemática, por exemplo.

Recomendo a leitura: https://www.caelum.com.br/apostila-java-orientacao-objetos/excecoes-e-controle-de-erros/

Abraço.

Criado 3 de junho de 2017
Ultima resposta 4 de jun. de 2017
Respostas 3
Participantes 2