Durante a aula o professor colocou o bloco try-catch no main e não no método 2 onde estava a exception. Onde devo colocar o try-catch, no método onde o código que dará a exception ou no main?
Durante a aula o professor colocou o bloco try-catch no main e não no método 2 onde estava a exception. Onde devo colocar o try-catch, no método onde o código que dará a exception ou no main?
Olá, acredito que o melhor local seja exatamente onde o erro pode acontecer, claro que existem diversas opções porém neste exemplo da aula o erro poderia acontecer no método 2, se o tratamento é colocado no método 2 é possível ver que a execução não sofre alteração, os números do bloco " for " são apresentados, se colocado em qualquer outro dos métodos o método 2 inteiro não é executado após a linha com erro. Sendo assim vale avaliar o código, se a execução de todo um método não causa impacto na aplicação ele pode ser "pulado" caso contrário, acredito que seja sempre importante colocar onde exatamente o erro pode acontecer. A título de explicação é interessante ver o comportamento do tratamento em métodos diferentes exatamente para perceber como funciona a pilha de execução.
Este foi meu entendimento, espero ter ajudado.
Thiane você só vai usar o try catch onde você achar que pode dar algum erro após a execução do código exemplo
public class Conta {
public void deposita();
}
public class testaConta { public static void main(String[] args) {
Conta contaDoPedro = null;
contaDoPedro.deposita();
}
}
No caso acima você pode ver que eu criei uma classe Conta que nela existe um metodo deposita. No metodo principal de teste o "main" eu criei uma referencia mais não criei uma conta e depois tentei acessar um metodo. Provavelmente como minha referência não aponta para lugar nenhum e eu estou atribuindo valores vai dar um erro. Sabendo desse erro eu posso usar o try catch como está abaixo para rodar o código e tratar essa exceção
public class testaConta {
public static void main(String[] args) {
try {
Conta contaDoPedro = null;
contaDoPedro.deposita();
} catch(NullPointerException ex) {
String mensagem = ex.getMessage();
System.out.println("Exception: "+mensagem);
System.out.println("Essa referencia Conta não aponta para lugar nenhum");
}
Dessa forma melhoramos o tratamento de um problema e podemos captura outras coisas fora mensagem e rastro de pilha.
}
}