ola,
Tenho uma dúvida com relação ao try catch. Se eu tenho um método A que executa o metodo B, estes estão em classes diferentes, ocorrendo uma exeção no método B o método A tambem deve cair no catch?
ola,
Tenho uma dúvida com relação ao try catch. Se eu tenho um método A que executa o metodo B, estes estão em classes diferentes, ocorrendo uma exeção no método B o método A tambem deve cair no catch?
Acho que eu entendi o meu problema, como o metodo B tambem executa dentro de um try catch, e a exceção ja esta sendo tratada la, no metodo A ele não gera exceção. É isto?
Tem como, mesmo eu tratando no metodo B, eu retornar a exceção para o A?
Sempre é bom tratar as exceções e respondendo a sua resposta é sim pois foi chamado o método que apresenta uma exceção.
Olá,
[quote=rpassos81]
Tem como, mesmo eu tratando no metodo B, eu retornar a exceção para o A?[/quote]
Sim, você pode lançar a mesma exceção no bloco catch. Por exemplo:
void metodoB() throws Exception {
try {
// algum código que dispara uma exceção...
} catch (Exception e) {
// Faço alguma coisa com a exceção e repasso
throw e;
}
}
[ ]'s
certo, porem o meu metodo possui um retorno, ai acho que ele não esta conseguindo retornar o meu retorno e tambem a exceção.
Quando eu passo o método B para void ai sim ele retorna a exceção para o A.
[quote=rpassos81]certo, porem o meu metodo possui um retorno, ai acho que ele não esta conseguindo retornar o meu retorno e tambem a exceção.
Quando eu passo o método B para void ai sim ele retorna a exceção para o A.[/quote]
Uma exceção interrompe o fluxo de execução do método no ponto em que foi disparada. Então se você estiver com algo como:
String metodo() throws Exception {
try {
// dispara uma exceção
} catch(Exception e) {
// faz alguma coisa
throw e;
}
return "terminou";
}
Se uma exceção for disparada, o método não vai executar até o ‘return’.
[ ]'s
Consegui fazer o retorno, eu esta passando um retorno do metodo no finally, por isto estava indo o retorno e não ia a exceção. Obrigado!