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");
}
}
{
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");
}
}
finally
{
System.out.println("finally");
}
我知道即使return 也会执行finally但是不知道这个return是return什么?是main方法的return吗?
finally 就是天王老子不关你怎么搞他都要执行。他有特权的
这代码执行过程就是先运行到return这返回到方法。再执行finally里面的再跳出方法
=================================================
你改成return 1; 应该就明白了