Outra de try-catch-finally

o q acontece ao compilar e executar esse codigo?

public class Teste{
 public Teste(){
  System.out.println(m1());
 }
 public static void main(String args[]){
  new Teste();
 }
 public int m1(){
  try{
   return 1;
  }
  catch (Exception erro){
   System.out.println("Exception!"); 
  }
  finally{
   return 2;
  }
 }
}

A Resposta será 2, pois por ter o Finally ele além de passar pelo Try irá passar pelo Finally, logo irá retornar o valor 2.
EStou errado?

concordo com o diogocl, o retorno do finally vai sobreescrever o retorno do metodo…

Resultado: 2.

“Eu acho”

É 2 com certeza … hehe … na outra pergunta eu errei por que esquecí do finally que é executado mesmo que tenha um return no try …

:slight_smile:

[]s

vai compilar e rodar normal sem acontecer nada! heheaheahae :lol:

Opa Pera ai Matheus!!!

acabei de executar aqui no eclipse, compila, roda e EXIBE o numero 2…
Ai não deu isso não? ou não acontece nada em relação a erros?

Explica ai melhor pra nois…
Abraços.

bahh… bele bele, é q eu nao vi nenhuma instrução println() q fosse imprimir o numero… nao imaginei q a saida do return seria exibida no console, falha minha :oops:

hehehehe… bele, bele… desta vez passa… mas só desta vez viu, pois se fosse na certificacao já tinha perdido uma facil, como diziam os meus professores de cursinho, as questoes faceis que te passam.
Desculpado por ser uma sexta feira.

realmente vai aparecer 2…

mas uma coisa q faltou foi q aparece um warning (eh soh warning, n eh erro, entaum compila, e pode ser executado) avisando q o finally n pode ser completa normalmente, mas na execucao o return do finally sobrepoe o return do try