class ExceptionTest
{
public static void main(String[] args)
{
int n = fun(2);
System.out.println("打印fun()函数返回的n值= "+n);
}
public static int fun(int i)
{
try
{
int m= i/0;
return i++;
}
catch (ArithmeticException e)
{
System.out.println("异常信息:"+e);
System.out.println("catch 中的i = "+i);
return i+3; }
finally
{
i++;
i++;
System.out.println("finally 执行 "+i);
return i+8;
}
}
}
复制代码
- class ExceptionTest
- {
- public static void main(String[] args)
- {
- int n = fun(2);
- System.out.println("打印fun()函数返回的n值= "+n);
- }
- public static int fun(int i)
- {
- try
- {
- int m= i/0;
- return i++;
- }
- catch (ArithmeticException e)
- {
- System.out.println("异常信息:"+e);
- System.out.println("catch 中的i = "+i);
- return i+3; //返回的是 2+3, 而不是finally中对i的赋值再来加上3,
- //finally中对i的操作,不会影响此时catch中的return i+3
- }
- finally
- {
- i++;
- i++;
- System.out.println("finally 执行 "+i);
- //return i+8; //如果这里没注释
- //这里会返回12,而不会去返回catch中的 return i+3
- }
- }
- }
zhangbingyuan 发表于 2014-3-30 10:21
首先分析下程序的执行顺序:
1,由于"int m = i/0"发生了除数为o的算数异常,所以在try代码块中,这条语句 ...
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) | 黑马程序员IT技术论坛 X3.2 |