码迷,mamicode.com
首页 > 编程语言 > 详细

Java异常体系

时间:2015-08-19 21:24:13      阅读:164      评论:0      收藏:0      [点我收藏+]

标签:

技术分享

关于Java的异常类层次,在这张图上已经很清晰的显示出来。

Throwable:作为所有异常的祖先,分别有派生出Exception和Error两个子类。

Error:Error的出现表明是JVM作为一个运行环境出现了问题,导致程序抛出Error而崩溃。

Exception:程序运行本身的异常。派生出RuntimeException和IOException两大类。

RuntimeException:运行时异常,包括逻辑上的比如数组越界,空指针,类型转换错误,类找不到等等。与逻辑相关的异常,就应该从逻辑上避免,编译器不检查,也不要求一定处理。

非运行时异常:不处理,编译不通过。比如IOException和SQLException,以及用户自定义的异常。


异常的处理方式无非:

捕获:try...catch...

抛出:给上一层处理。在定义方法的时候抛异常使用throws。而在代码中主动抛异常则使用throw。以后别傻傻分不清,搞错可是要打自己屁股的。


多个异常同时发生,并且异常之间是继承关系,如何运行?

答案是:

Exception作为所有异常的祖先,如果放在其他异常的前面,会编译异常,通过不了语法检查。

否则,Exception放在最后,那么最精确匹配的异常才会执行。


Java异常体系

标签:

原文地址:http://my.oschina.net/gaohongtian/blog/494779

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!