原创 

Java的异常及并列写法

分类:java    197人阅读    IT小君  2018-08-29 13:56

1、java里的异常的分类.

 
见下图:
 
                       Throwable
                      /                \
              Error             Exception
                 /                   /               \
         xxxxxx             xxxxxx          RuntimeException
                                                          /                   \

                                                     xxxxxx             ArithmeticException  


上图的所有对象都是类.     
 
Throwable 代表是可抛出的.
Error            代表的是严重错误,  这种错误程序员无法进行处理, 例如操作系统崩溃, jvm出错, 动态链接库失败等.  Error并不是异常, 不是本文的重点.
 
Exception    代表的就是异常了.  它下面很多派生类,   其中它的派生类也分两种, 一种是RuntimeException(运行时异常), 其他的都是非运行时异常
 
RuntimeException    包括除数为0, 数组下标超界等. 运行时异常的派生类有很多, 其产生频率较高.  它的派生类可以由程序处理或者抛给(throw) 给jvm处理. 例如上面的例子就是抛给了jvm处理, jvm把程序中断执行, 并把错误信息输出到终端上.
 
非RuntimeExcption   这种异常属于Excepion的派生类(上面红色的xxx), 但是不是RuntimeException的派生类,  这种异常必须由程序员手动处理,否则不通过编译.
 

ArithmeticExcpetion   算术异常, 它是RuntimeException的派生类, 所以程序员不手动处理也通过编译, 只不过出错时会被jvm处理.


2、捕捉多个exception

在Java SE 7中,你可以使用单个catch语句块处理一种或多种类型的异常,并以改进的异常类型检查方式来重新抛出异常。 我们先来看一段代码:

catch (IOException ex) {
     logger.log(ex);
     throw ex;
catch (SQLException ex) {
     logger.log(ex);
     throw ex;
}

在Java SE 7发布之前,由于变量ex存在不同的类型,因此想要创建一个公共方法来清除重复的代码是非常困难的。不过从Java SE 7版本开始,你可以编写如下代码来去除重复的代码:

catch (IOException|SQLException ex) {
    logger.log(ex);
    throw ex;
}

注意:如果一个catch语句块处理的异常类型超过1个,那就隐式地表示被catch的参数变量(例如上面的ex)是一个final的变量,你不能在catch语句块内对其重新赋值。 使用单个catch语句块处理多种异常类型比使用多个catch语句块,每个语句块只处理一种类型的异常所编译生成的字节码更小,因此也更好。一个处理多个异常类型的catch语句块在被Java编译器编译时并不会生成重复的字节码,字节码中也没有重复的异常处理程序。

点击广告,支持我们为你提供更好的服务

html5 canvas彩色碎片组合球形旋转动画特效

jQuery右端悬浮带返回顶部特效

有机水果蔬菜HTML5网站模板

小众时尚单品在线电子商务网站模板

响应式咖啡饮品宣传网站模板

html5图标下拉搜索框自动匹配代码

HTML5 Canvas竖直流动线条背景动画特效

css鼠标跟随文字模糊特效

网页设计开发公司网站模板

响应式时尚单品在线商城网站模板

响应式太阳能能源公司网站模板

HTML5现代家居装潢公司网站模板

canvas炫酷鼠标移动文字粒子特效

html5 svg夜空中星星流星动画场景特效

现代时尚家具公司网站模板

html5 canvas进度条圆环图表统计动画特效

HTML5数字产品服务公司网站模板

css+js实现的颜色渐变数字时钟动画特效

中小型创意设计服务公司网站模板

js+css3抽奖转盘旋转点餐代码

点击广告,支持我们为你提供更好的服务
 工具推荐 更多»
点击广告,支持我们为你提供更好的服务