日期:2014-05-20  浏览次数:20615 次

刚看到异常,有个返回语句不理解,求前辈指点
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 ");
}
}


------解决方案--------------------
别听楼上瞎扯,到return这里肯定会先执行下边的finally再return的
finally
{
System.out.println( "finally ");
}
------解决方案--------------------
说白了return就是返回。返回到方法,不再执行方法体。不是方法都有个返回类型吗。
finally 就是天王老子不关你怎么搞他都要执行。他有特权的
这代码执行过程就是先运行到return这返回到方法。再执行finally里面的再跳出方法

------解决方案--------------------
但是main函数不是void的吗?返回的话?????????
=================================================
你改成return 1;

应该就明白了