Try/catch

olá pessoal,

estou com uma dúvida no código abaixo, porque que o -1 so é impresso após a execução do bloco finally???

01import java.io.*; 02 public class Mine { 03 public static void main(String argv[]){ 04 Mine m=new Mine(); 05 System.out.println(m.amethod()); 06 } 07 public int amethod() { 08 try { 09 FileInputStream dis=new FileInputStream("Hello.txt"); 10 }catch (FileNotFoundException fne) { 11 System.out.println("No such file found"); 12 return -1; 13 }catch(IOException ioe) { 14 } finally{ 15 System.out.println("Doing finally"); 16 } 17 18 return 0; 19 } 20 21 }

Porque o bloco finally sempre vai executar, idependente de ter uma exceção… ele faz parte do método, logo vai executar antes do método terminar. Como vc imprime o retorno fora do método, ele executa o finally antes