关于try,catch,finally相关笔记
2014-08-05 11:30
274 查看
代码:
运行结果:134
13423
说明:
此代码有点迷惑性,很容易看成运行结果是8和13,仔细看看,可以知道output是字符串类型,执行的是字符串相加!
当执行foo(0);时,因为i等0,所以只会执行①处代码,之后会执行③和④处代码,因此,此时的运算结果是134。
当执行foo(1);时,因为i等于1,所以会抛出异常,①处就不会执行,会执行②处代码,但因执行过foo(0);,因此,此时执行②处代码后是1342。当遇到return语句时,只会执行finally里的语句,④处的语句就不会执行!,因此,此时的运行结果是13423。
public class Test { public static String output=""; public static void foo(int i){ try { if(i==1) throw new Exception(); output+="1";//① } catch (Exception e) { output+="2";//② return; }finally{ output+="3";//③ } output+="4";//④ } public static void main(String[] args) { foo(0); System.out.println(output);//134 foo(1); System.out.println(output);//13423 } }
运行结果:134
13423
说明:
此代码有点迷惑性,很容易看成运行结果是8和13,仔细看看,可以知道output是字符串类型,执行的是字符串相加!
当执行foo(0);时,因为i等0,所以只会执行①处代码,之后会执行③和④处代码,因此,此时的运算结果是134。
当执行foo(1);时,因为i等于1,所以会抛出异常,①处就不会执行,会执行②处代码,但因执行过foo(0);,因此,此时执行②处代码后是1342。当遇到return语句时,只会执行finally里的语句,④处的语句就不会执行!,因此,此时的运行结果是13423。
相关文章推荐
- 关于try...catch...finally中return的疑惑
- 关于try、catch、finally语句块中含有return语句的几点说明
- try、catch、finally的使用分析---与 return 相关
- java中关于try、catch、finally中的细节分析
- java中关于try、catch、finally中的细节分析
- 关于try...catch...finally中return的疑惑
- C#中关于try...catch...finally的一些技巧
- 关于C++: try...catch...的汇编实现&相关讨论,FS
- 关于try/catch的笔记
- java个人学习笔记14(Error+Exception+try_catch_finally+throw+throws)
- 关于try ...catch .. finally的使用
- 关于try...catch...finally中return的疑惑(有待进一步探讨)
- 关于 try..catch..finally
- 关于try-catch-finally以及值类型和引用类型。
- 关于try-catch-finally
- java中关于try、catch、finally中的细节分析
- 关于java中的try-catch-finally语句和return
- 关于try...catch...finally中return的疑惑
- 关于JAVA的try catch finally的return返回值问题
- 关于java中的try-catch-finally语句和return