Java try catch finally的执行顺序
来源:互联网 发布:centos 7root密码破解 编辑:程序博客网 时间:2024/05/01 16:05
关于Java中try catch finally 的执行顺序一直是入职笔试的一个热门,其实在实际的项目中还是遇到的比较多,所以整理如下:
需要首先注意的几点:
1) try catch finally中的finally不管在什么情况之下都会执行,执行的时间是在程序return 之前.
2) Java 编译器不允许有显示的执行不到的语句块,比如return之后就不可能再有别的语句块(分支不属于此列) 所以以下程序编译会报错:
- public String testSeq(){
- String result = "";
- int i = 0;
- try{
- System.out.println(6/i);
- System.out.println("in try...");
- //return "try";
- }catch(Exception e){
- e.printStackTrace();
- System.out.println("In catch..."); //return "catch";
- }finally{
- System.out.println("In finally....");
- return "finally";
- }
- return result;
- }
(原因是finally块中已经存在return)
几个关于try catch finally的小例子:
1)
- public String testSeq(){
- String result = "";
- int i = 0;
- try{
- System.out.println("in try...");
- return "try";
- }catch(Exception e){
- e.printStackTrace();
- System.out.println("In catch...");
- return "catch";
- }finally{
- System.out.println("In finally...."); return "finally";
- }
- }
输出结果为:
- in try...
- In finally....
- finally(return value)
2)
- public String testSeq(){
- String result = "";
- int i = 0;
- try{
- i = 7/i;
- System.out.println("in try...");
- return "try";
- }catch(Exception e){
- e.printStackTrace();
- System.out.println("In catch...");
- return "catch";
- }finally{
- System.out.println("In finally....");
- return "finally";
- }
- }
输出结果:
- java.lang.ArithmeticException: / by zero at com.ncs.eric.TestTryCatchFinally.testSeq(TestTryCatchFinally.java:9) at com.ncs.eric.TestTryCatchFinally.main(TestTryCatchFinally.java:24)
- In catch...
- In finally....
- finally(return value)
- Java try catch finally的执行顺序
- Java try catch finally的执行顺序
- Java try catch finally的执行顺序
- Java try catch finally的执行顺序
- Java try catch finally的执行顺序
- java try-catch-finally的执行顺序
- Java try-catch-finally 代码执行顺序
- java try catch finally 执行顺序
- java 中try catch finally执行顺序
- Java含有return 的try catch finally的执行顺序
- java中try catch finally与return的执行顺序
- java 中try catch finally 语句的执行顺序
- java 中try catch finally 语句的执行顺序
- java try catch finally的执行顺序
- 关于java中try catch finally的执行顺序
- java 中 try catch finally 语句的执行顺序
- Java中try-catch-finally-return的执行顺序
- Java语言中try-catch-finally的执行顺序
- 引入并发的原因
- Open-Short Test
- 关于主控密钥
- json数据处理技巧(字段带空格、增加字段)
- FileReader, FileInputStream,InputStreamReader,BufferedReader区别
- Java try catch finally的执行顺序
- ant编译的问题
- 8086乘法指令MUL,IMUL
- 商业书籍推荐
- log级别设置
- 数据库备份以及链接服务器
- python之matplotlib库的使用
- System.Drawing.Bitmap要如何轉換成WPF中可用的ImageSource
- cannot open output file main: Permission denied问题解决办法