class Excep
{
int division(int a,int b) throws ArithmeticException
{
try
{
return a/b;
}
catch (ArithmeticException e)
{
throw e;
}
}
int fn1(int a,int b) throws ArithmeticException
{
return division(a,b);
}
}class Text 
{
public static void main(String[] args) 
{
Excep excep = new Excep(); try
{
excep.fn1(5,0);
System.out.println("Exception");
}
catch (ArithmeticException ex)
{
System.out.println(ex.toString());
return;//返回到哪?为什么返回了finish不执行?
}
catch (Exception e)
{
System.out.println(e.toString());
}
finally
{
System.out.println("finally");
} System.out.println("finish");
}
}

解决方案 »

  1.   

    return 就是直接跳出了这个方法了  运行到这里的时候  main方法结束了  自然后面的也不会运行了
      

  2.   

    别听楼上瞎扯,到return这里肯定会先执行下边的finally再return的
    finally
    {
    System.out.println("finally");
    }
      

  3.   

    .............
    我知道即使return 也会执行finally但是不知道这个return是return什么?是main方法的return吗?
      

  4.   

    你所注释的return是主函数的,下面的finally语句肯定是要被执行的,当抛出异常时只有一个carch能捕捉到,即使下面仍有适合的catch也执行不到.但finally肯定是要执行的.就算语句前面有return的话finally也要执会执行,然后返回.
      

  5.   

    说白了return就是返回。返回到方法,不再执行方法体。不是方法都有个返回类型吗。
    finally  就是天王老子不关你怎么搞他都要执行。他有特权的
    这代码执行过程就是先运行到return这返回到方法。再执行finally里面的再跳出方法
      

  6.   

    但是main函数不是void的吗?返回的话?????????
      

  7.   

    但是main函数不是void的吗?返回的话?????????
    =================================================
    你改成return 1; 应该就明白了