JAVA异常处理之finally中最好不要使用return
2017-03-24 12:58
495 查看
finally 语句块中, 最好不要使用return, 否则会造成已下后果;
1, 如果catch块中捕获了异常, 并且在catch块中将该异常throw给上级调用者进行处理, 但finally中return了, 那么catch块中的throw就失效了, 上级方法调用者是捕获不到异常的. 见demo如下:
View Code
输出结果为5, 5
如果finally中的return被注释掉, 那么输出结果是4, 5
1, 如果catch块中捕获了异常, 并且在catch块中将该异常throw给上级调用者进行处理, 但finally中return了, 那么catch块中的throw就失效了, 上级方法调用者是捕获不到异常的. 见demo如下:
public class TestException3 { public static int x = 3; int testEx() throws Exception { try { x = 4; return x; } catch (Exception e) { } finally { x = 5; return x; } } public static void main(String[] args) { TestException3 testException3 = new TestException3(); try { int a = testException3.testEx(); System.out.println(a); System.out.println(x); } catch (Exception e) { } } }
View Code
输出结果为5, 5
如果finally中的return被注释掉, 那么输出结果是4, 5
相关文章推荐
- JAVA异常处理之finally中最好不要使用return
- java异常处理:finally中不要return
- java异常处理-finally中使用return和throw语句
- java异常处理:finally中不要return
- java异常体系---不要在finally块中使用return、throw
- java中异常处理finally和return语句的执行顺序
- Java异常处理中,try {}里有一个return语句,那么紧跟在这个try后的finally {}里的code会不会被执行,什么时候被执行,在return前还是后?
- java中异常处理finally和return语句的执行顺序
- Java语言如何进行异常处理,关键字:throws、throw、try、catch、finally分别如何使用?
- java中异常处理finally和return语句的执行顺序
- java中异常处理finally和return语句的执行顺序
- Java异常处理机制以及try-catch-finally-return执行顺序
- Java异常处理机制以及try-catch-finally-return执行顺序
- HiveServer2 的jdbc方式创建udf的修改(add jar 最好不要使用),否则会造成异常: java.sql.SQLException: Error while processing statement: null
- Java 异常处理:finally,return
- java异常处理之使用finally
- Java - Java语言如何进行异常处理,关键字:throws、throw、try、catch、finally分别如何使用?
- Java 中使用 try-catch-finally处理异常
- Java异常处理机制以及try-catch-finally-return执行顺序
- java关于异常处理只使用try-finally而不使用catch