今天遇到一个很奇葩的问题!在写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?我一直找都没找到原因! 希望哪位大牛能够告知一下!小弟在此谢过了!

  

JAVA不经过Catch(Exception e)直接到finally或者退出原因的更多相关文章

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

    原来是被变成Throwable抛出来了!而Exception是Throwable的子类,所以无法捕捉到,只有捕捉Throwable的时候,才可以将错误信息打印!

  2. Java基础 try...catch...catch 使用Exception,去捕获其子类异常

        JDK :OpenJDK-11      OS :CentOS 7.6.1810      IDE :Eclipse 2019‑03 typesetting :Markdown   code ...

  3. Java 里的异常(Exception)详解

    作为一位初学者, 本屌也没有能力对异常谈得很深入.   只不过Java里关于Exception的东西实在是很多. 所以这篇文章很长就是了.. 一, 什么是java里的异常   由于java是c\c++ ...

  4. Java常见异常(Runtime Exception )小结(转)

    原文链接:Java常见异常(Runtime Exception )小结 Java异常体系结构呈树状,其层次结构图如图 1所示:           本文重在Java中异常机制的一些概念.写本文的目的在 ...

  5. java 异常处理try+catch

    在整个异常处理机制中,异常在系统中进行传递,传递到程序员认为合适的位置,就捕获到该异常,然后进行逻辑处理,使得项目不会因为出现异常而崩溃.为了捕获异常并对异常进行处理,使用的捕获异常以及处理的语法格式 ...

  6. Java中的Checked Exception——美丽世界中潜藏的恶魔?

    在使用Java编写应用的时候,我们常常需要通过第三方类库来帮助我们完成所需要的功能.有时候这些类库所提供的很多API都通过throws声明了它们所可能抛出的异常.但是在查看这些API的文档时,我们却没 ...

  7. 【转】Java中try catch finally语句中含有return语句的执行情况(总结版)

    Java中try catch finally语句中含有return语句的执行情况(总结版) 有一点可以肯定,finally块中的内容会先于try中的return语句执行,如果finall语句块中也有r ...

  8. Java基础知识系列——Exception

    异常在编程中使用频率非常非常的高,在Java中异常的基类是Exception. 下面就介绍一下Java中的异常: 1.结构 try{ //捕获try里的异常 }catch( Exception e){ ...

  9. java 区分error和exception

    1) java.lang.Error: Throwable的子类,用于标记严重错误.合理的应用程序不应该去try/catch这种错误.绝大多数的错误都是非正常的,就根本不该出现的.java.lang. ...

随机推荐

  1. Java系列--第一篇 Maven+Spring+Spring MVC+mybatis 示例

    基于Maven的Spring+SpringMVC+Mybatis的一个小项目的搭建,由于使用Maven3.1.0管理,所以Spring等都将使用的是时下(2013/9/8)最新的版本.即从http:/ ...

  2. 移动WEB开发常用技巧

    Meta设置 <!-- 设备宽度.禁止缩放 --> <meta name="viewport" content="width=device-width, ...

  3. 【破解】破解ACDSEE15的方法

    1.先从官方下载一个ACDSEE15简体中文版 2.下载注册机(点我下载) 3.修改注册表 修改注册表ACDSee 32位:HKEY_LOCAL_MACHINE\SOFTWARE\ACD System ...

  4. 关于在C#中实现AOP 拦截编程模式的新的探索

    前面有篇文章,是从其他个人博客中贴过来的.地址:http://www.lanhusoft.com/Article/240.html 作者总结实现的挺好. 但是.不能不考虑性能!!使用 ContextB ...

  5. VS如何关闭 ReSharper 提示

    IDE->工具->选项->click "suspend now" button

  6. Word Pattern II 解答

    Question Given a pattern and a string str, find if str follows the same pattern. Here follow means a ...

  7. 04747_Java语言程序设计(一)_第5章_图形界面设计(一)

    例5.1一个用JFrame类创建窗口的Java应用程序. import javax.swing.*; public class Example5_1 { public static void main ...

  8. wxpython 布局管理

    一个典型的应用程序是由不同的部件.这些小部件被放进容器部件.一个程序员必须管理应用程序的布局.这不是一项容易的任务.在wxPython我们有两个选择. *absolute positioning*si ...

  9. iTunes 重新提交代码步骤

    1.选择View Details 2.右侧Links-Binary Details选项 3.Reject This Binary

  10. 网络基础知识HTTP(1) --转载

    为什么要写网络? 作为网站开发人员,你所开发的软件产品最终是要在网络上运行的.这就像一个生产商,要生产供给东北地区的产品,而生产商对东北的天气.地理.人文毫无了解.生产商的产品肯定是不可用的,或者低端 ...