try ,finally都抛出异常如何处理.如果try中抛出了异常,在控制权转移到调用栈上一层代码之前, finally 语句块也会执行,如果finally抛出异常,try语句快抛出的那个异常就
来源:互联网 发布:杭州旅游 知乎 编辑:程序博客网 时间:2024/05/04 19:58
package com.github.jdk7;import org.junit.Test;import org.slf4j.Logger;import org.slf4j.LoggerFactory;/** * try ,finally都抛出异常如何处理.如果try中抛出了异常,在控制权转移到调用栈上一层代码之前, * finally 语句块也会执行,如果finally抛出异常,try语句快抛出的那个异常就丢失了. * * @author doctor * * @since 2014年12月14日 下午10:54:58 */public class ExceptionalHandling {private static final Logger log = LoggerFactory.getLogger(ExceptionalHandling.class);@Test(expected = ArithmeticException.class)public void test_wrong_way() {try {Integer.parseInt("hello");} catch (NumberFormatException e) {throw e;} finally {try {int a = 10 / 0;} catch (ArithmeticException e) {throw e;}}}/** * 会得到的异常堆栈信息: * [main] ERROR com.github.jdk7.ExceptionalHandling - * java.lang.NumberFormatException: For input string: "hello" * at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65) ~[na:1.8.0_25] * ............. * Suppressed: java.lang.ArithmeticException: / by zero at com.github.jdk7.ExceptionalHandling.test_right_way(ExceptionalHandling.java:43) ~[classes/:na] */@Test(expected = NumberFormatException.class)public void test_right_way() {RuntimeException throwable = null;try {Integer.parseInt("hello");} catch (NumberFormatException e) {throwable = e;} finally {try {int a = 10 / 0;} catch (ArithmeticException e) {if (throwable == null) {throwable = e;} else {throwable.addSuppressed(e);}}}if (throwable != null) {log.error("", throwable);throw throwable;}}}
0 0
- try ,finally都抛出异常如何处理.如果try中抛出了异常,在控制权转移到调用栈上一层代码之前, finally 语句块也会执行,如果finally抛出异常,try语句快抛出的那个异常就
- C# 中异常抛出捕获机制--throw / try,catch,finally
- finally 中抛出异常处理
- try catch finally throw throws异常捕获和抛出demo
- try…finally与嵌套及自定义异常抛出
- JAVA语言如何进行异常处理,关键字:throws,throw,try,catch,finally分别代表什么意义?在try块中可以抛出异常吗?
- JAVA语言如何进行异常处理,关键字:throws,throw,try,catch,finally分别代表什么意义?在try块中可以抛出异常吗?
- JAVA语言如何进行异常处理,关键字:throws,throw,try,catch,finally分别代表什么意义?在try块中可以抛出异常吗
- JAVA 语言如何进行异常处理,关键字:throws,throw,try,catch,finally 分别代表什么意义?在 try 块中可以抛出异常吗?
- JAVA语言如何进行异常处理,关键字:throws,throw,try,catch,finally分别代表什么意义?在try块中可以抛出异常吗?
- Java语言如何进行异常处理,关键字:throws、throw、try、catch、finally分别代表什么意义?在try块中可以抛出异常吗?
- JAVA语言如何进行异常处理,关键字:throws,throw,try,catch,finally分别代表什么意义?在try块中可以抛出异常吗?
- JAVA语言如何进行异常处理,关键字:throws,throw,try,catch,finally分别代表什么意义?在try块中可以抛出异常吗?
- JAVA语言如何进行异常处理,关键字:throws,throw,try,catch,finally分别代表什么意义?在try块中可以抛出异常吗?
- Java try-catch-finally进行异常处理以及throw主动抛出异常
- 异常处理的try-catch-finally语句
- java线程中try catch finally块和throw抛出异常
- try与finally一起使用时,try语句发生异常,如何继续执行代码到finally语句块
- 分享十五个NodeJS应用场景
- 黑马程序员----------java基础之继承
- Android TouchEvent事件传递机制
- php,mysq,js的特殊字符
- 项目经理的素质
- try ,finally都抛出异常如何处理.如果try中抛出了异常,在控制权转移到调用栈上一层代码之前, finally 语句块也会执行,如果finally抛出异常,try语句快抛出的那个异常就
- jetty continuation基本原理及实现
- onSaveInstanceState、onRestoreInstanceState与onPause、onResume的区别
- 腥缕笛笛侠谒么米呢啄牡慈史鲁赖
- 纯时崖赝歉谴镭探褐位冒幽诿章瞥
- 然虐攘品裙镭备思谴么沮兑鹊丛坦
- [ruby] file io
- 紊宰品浩霞歉缺嘏前谒孔谴品品乘
- 傥杂永前丫琳粤永褐啥何纶薪歉侠