JAVA不经过Catch(Exception e)直接到finally或者退出原因
今天遇到一个很奇葩的问题!在写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或者退出原因的更多相关文章
- Hadoop中JAVA不经过Catch(Exception e)直接到finally或者退出原因
原来是被变成Throwable抛出来了!而Exception是Throwable的子类,所以无法捕捉到,只有捕捉Throwable的时候,才可以将错误信息打印!
- Java基础 try...catch...catch 使用Exception,去捕获其子类异常
JDK :OpenJDK-11 OS :CentOS 7.6.1810 IDE :Eclipse 2019‑03 typesetting :Markdown code ...
- Java 里的异常(Exception)详解
作为一位初学者, 本屌也没有能力对异常谈得很深入. 只不过Java里关于Exception的东西实在是很多. 所以这篇文章很长就是了.. 一, 什么是java里的异常 由于java是c\c++ ...
- Java常见异常(Runtime Exception )小结(转)
原文链接:Java常见异常(Runtime Exception )小结 Java异常体系结构呈树状,其层次结构图如图 1所示: 本文重在Java中异常机制的一些概念.写本文的目的在 ...
- java 异常处理try+catch
在整个异常处理机制中,异常在系统中进行传递,传递到程序员认为合适的位置,就捕获到该异常,然后进行逻辑处理,使得项目不会因为出现异常而崩溃.为了捕获异常并对异常进行处理,使用的捕获异常以及处理的语法格式 ...
- Java中的Checked Exception——美丽世界中潜藏的恶魔?
在使用Java编写应用的时候,我们常常需要通过第三方类库来帮助我们完成所需要的功能.有时候这些类库所提供的很多API都通过throws声明了它们所可能抛出的异常.但是在查看这些API的文档时,我们却没 ...
- 【转】Java中try catch finally语句中含有return语句的执行情况(总结版)
Java中try catch finally语句中含有return语句的执行情况(总结版) 有一点可以肯定,finally块中的内容会先于try中的return语句执行,如果finall语句块中也有r ...
- Java基础知识系列——Exception
异常在编程中使用频率非常非常的高,在Java中异常的基类是Exception. 下面就介绍一下Java中的异常: 1.结构 try{ //捕获try里的异常 }catch( Exception e){ ...
- java 区分error和exception
1) java.lang.Error: Throwable的子类,用于标记严重错误.合理的应用程序不应该去try/catch这种错误.绝大多数的错误都是非正常的,就根本不该出现的.java.lang. ...
随机推荐
- Java系列--第一篇 Maven+Spring+Spring MVC+mybatis 示例
基于Maven的Spring+SpringMVC+Mybatis的一个小项目的搭建,由于使用Maven3.1.0管理,所以Spring等都将使用的是时下(2013/9/8)最新的版本.即从http:/ ...
- 移动WEB开发常用技巧
Meta设置 <!-- 设备宽度.禁止缩放 --> <meta name="viewport" content="width=device-width, ...
- 【破解】破解ACDSEE15的方法
1.先从官方下载一个ACDSEE15简体中文版 2.下载注册机(点我下载) 3.修改注册表 修改注册表ACDSee 32位:HKEY_LOCAL_MACHINE\SOFTWARE\ACD System ...
- 关于在C#中实现AOP 拦截编程模式的新的探索
前面有篇文章,是从其他个人博客中贴过来的.地址:http://www.lanhusoft.com/Article/240.html 作者总结实现的挺好. 但是.不能不考虑性能!!使用 ContextB ...
- VS如何关闭 ReSharper 提示
IDE->工具->选项->click "suspend now" button
- Word Pattern II 解答
Question Given a pattern and a string str, find if str follows the same pattern. Here follow means a ...
- 04747_Java语言程序设计(一)_第5章_图形界面设计(一)
例5.1一个用JFrame类创建窗口的Java应用程序. import javax.swing.*; public class Example5_1 { public static void main ...
- wxpython 布局管理
一个典型的应用程序是由不同的部件.这些小部件被放进容器部件.一个程序员必须管理应用程序的布局.这不是一项容易的任务.在wxPython我们有两个选择. *absolute positioning*si ...
- iTunes 重新提交代码步骤
1.选择View Details 2.右侧Links-Binary Details选项 3.Reject This Binary
- 网络基础知识HTTP(1) --转载
为什么要写网络? 作为网站开发人员,你所开发的软件产品最终是要在网络上运行的.这就像一个生产商,要生产供给东北地区的产品,而生产商对东北的天气.地理.人文毫无了解.生产商的产品肯定是不可用的,或者低端 ...