文章类型: JAVA
关键词: JAVA不经过Catch(Exception,e)直接到finally或者退出原因
内容摘要: JAVA不经过Catch(Exception e)直接到finally或者退出原因

JAVA不经过Catch(Exception e)直接到finally或者退出原因

2017/7/20 16:41:18    来源:apple    阅读:

今天遇到一个很奇葩的问题!在写Hadoop程序的时候!new一个对象!程序直接跑到finally代码块里面去了!Catch里面的Exception也没有执行。

Configuration configuration = new Configuration();

  害我纳闷了好久!就去看了Hadoop的源码!new这个对象的时候也没执行哪些操作,只是一些正常的赋值而已!后来网上找了很久才发现,原来是被变成Throwable抛出来了!而Exception是Throwable的子类,所以无法捕捉到,只有捕捉Throwable的时候,才可以将错误信息打印!


  具体原始是由于Hadoop的Configuration类中有个静态的变量,在ClassLoader加载class的时候,发生了异常

private static final Log LOG = LogFactory.getLog(Configuration.class);

  我的错误很弱智,只是因为没有把 common-logging的包加进去而已! 相信一般情况这种事情很少人会遇到!但今天遇到了,就当是经验教训,也好让有这方面的疑问的人可以得到解决!所以呢,以后不要以为Catch(Exception e)就算是万事大吉了,throwable才是终极BOSS!


  至于为什么这里抛出的是Throwable而不是Exception?我一直找都没找到原因! 希望哪位大牛能够告知一下!可以在下面留言,在此谢过了!


↑ 上一篇文章:Android中如何实现蓝牙的配对与连接 关键词:Android中如何实现蓝牙的配对与连接,Android.. 发布日期:2017/7/20 16:39:57
↓ 下一篇文章:检测到在集成的托管管道模式下不适用的ASP.NET设置的解决方法(非简单设置为【经典】模式) 关键词:检测到在集成的托管管道模式下不适用的ASP.NET设置的.. 发布日期:2017/7/24 9:29:24
相关目录:.NETANDROIDJAVA软件开发
我要评论
正在加载评论信息......