Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

willian2013

try catch

Recommended Posts

Lendo sobre try catch, vi que é recomendado usar uma exceção específica a qual condiz com o erro que pode acontecer ou que aconteceu. Como por exemplo:

int[] array = new int[10];
try {
for (int i = 0; i <= 15; i++) {
array[i] = i; 
System.out.println(i);
}
} catch (ArrayIndexOutOfBoundsException e) {
System.out.println("erro: " + e);
}


No caso, isso pode ser corrigido usando array.lenght no lugar do 15. Logo é desnecessário esse try catch já que posso resolver o problema. Então, se eu sei especificar o problema, posso resolve-lo, e o try catch é desnecessário. Eu achava que try catch era para tratar o problema no sentido de resolve-lo, mas pelo que eu vi, ele é usado para informar o problema e aquele que o informou não soube corrigi-lo. É isso mesmo ou estou completamente enganado?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá Willian,

 

Manipuladores de exceção fazem mais do que apenas imprimir mensagens de erro ou interromper o programa. Eles podem fazer a recuperação de erro, solicitar uma decisão do usuário quanto ao erro, ou propagar o erro até um manipulador de nível superior usando exceções encadeadas.

 

Aconteceu um erro de violação de um constraint NOT NULL no banco de dados, por exemplo. Você não vai apresentar para o usuário a mensagem nativa do JDBC? Com certeza não. Geralmente a mensagem é manipulada para ser apresentada de forma amigável e isso pode cruzar as camadas da aplicação.

 

Para maiores detalhes veja:

 

https://docs.oracle.com/javase/tutorial/essential/exceptions/index.html

 

Att,

Daniel

Compartilhar este post


Link para o post
Compartilhar em outros sites

O try-catch serve para você prever algo que foge ao seu controle. Traduzindo, tentar (try) e capturar/pegar (catch).

 

Por exemplo se o usuário informar um arquivo que o sistema não consegue encontrar. Essa classe java retorna uma Exception específica para isso.

 

É óbvio que quando houver uma interação com o usuário eu devo tentar tratá-la antes da Exception, mas caso não seja possível a Exception serve para eu identificar qual foi o erro e informar isso ao usuário baseado no tipo de Exception.

 

Existe também a possibilidade de criar suas próprias Exception para seus métodos.

Compartilhar este post


Link para o post
Compartilhar em outros sites

para que você esta usando try & catch?


e além disso o Exception ta errado, que seria ArrayOutOfBoundException e você tá imprimindo o exception e não o erro. lá no "erro: " + e;

coloca "erro: " + e.printStackTrace();

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.