在finally块中使用try catch,并且catch的时候抛出异常的一个问题

摘要:
因此,以后不能在finally块的catch中抛出异常。

在finally中使用try/catch,并且catch的时候抛出异常

在finally块中使用try catch,并且catch的时候抛出异常的一个问题第1张

IDEA会提示警告

在finally块中使用try catch,并且catch的时候抛出异常的一个问题第2张

Reports throw statements inside of finally blocks. While occasionally intended, such throw statements may mask exceptions thrown, and tremendously complicate debugging.

大意是:这样可能会掩盖异常抛出

做以下测试代码: 

public static void main(String[] args) throws Exception {
    try{
        throw new Exception("异常1");
    }catch (Exception e){
        throw new Exception("异常2");
    }finally {
        try {
            throw new Exception("异常3");
        } catch (Exception e) {
            throw new Exception("异常4");
        }
    }
}

  

输出结果为:

Exception in thread "main" java.lang.Exception: 异常4
  at cn.com.dataocean.cip.web.Test.main(Test.java:22)

只抛出了一个异常4,并没有抛出异常2。所以以后不可以在finally块中的catch中抛出异常了。

原创文章,欢迎转载,转载请注明出处!

免责声明:文章转载自《在finally块中使用try catch,并且catch的时候抛出异常的一个问题》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇oracle日期处理函数整理Android的移动存储解决方案之SharedPreferences 狼人:下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

JVisualVM简介与内存泄漏实战分析

一、JVisualVM能做什么       VisualVM 是Netbeans的profile子项目,已在JDK6.0 update 7 中自带(java启动时不需要特定参数,监控工具在bin/jvisualvm.exe),能够监控线程,内存情况,查看方法的CPU时间和内存中的对 象,已被GC的对象,反向查看分配的堆栈(如100个String对象分别由...

HBase海量数据存储

HBaseHBase是一个基于HDFS的非关系型数据库(海量数据存储) HBase的特点 1.海量数据存储,HBase中的表可以容纳上百亿行x上百万列的数据。 2.列式存储,HBase中的数据是基于列进行存储的,能够动态的增加和删除列。 3.准实时查询,HBase在海量的数据量下能够接近准实时的查询(百毫秒以内) 4.多版本,HBase中每一列的数据都有多...

Java5 多线程实践

2006 年 1 月 18 日 Java5增加了新的类库并发集java.util.concurrent,该类库为并发程序提供了丰富的API多线程编程在Java 5中更加容易,灵活。本文通过一个网络服务器模型,来实践Java5的多线程编程,该模型中使用了Java5中的线程池,阻塞队列,可重入锁等,还实践了Callable, Future等接口,并使用了Jav...

Java解析复杂xml文件,使用Xpath

Java解析复杂xml文件,需要使用到xpath,首先使用了Jdom2。代码示例如下: public static Document GetFileFromLocal(String filename){ try { FileInputStream stream=new FileInputStream(String.format("d:/x下载/%s.xm...

redis 的简明教程

redis 结合ssm使用 一、Redis使用 1、jedis操作redis非关系型数据库 2、spring 集成redis 二、两者区别: 一、Redis使用 1、jedis操作redis非关系型数据库 (1)、pom.xml <!-- redis客户端jar --> <dependency> &l...

Quartz+Spring 实现定时任务的 管理和监控

 0,监控的意义 (1)能够查看有多少定时任务,用的什么执行策略,便于管理 (2)能够通过界面操作停止或启动某个定时任务,便于管理 (3)能够通过界面操作改变某个定时任务的执行策略,便于管理 1,pom.xml 文件添加jar 1 <!-- quartz监控 --> 2 <dependency> 3 <gro...