现在的位置: 首页 > 综合 > 正文

java学习笔记 异常知识小结

2014年07月17日 ⁄ 综合 ⁄ 共 865字 ⁄ 字号 评论关闭

在java中Exception类是在java.lang包下,所以不用导入。它是所有异常的父类。Exception的父类是Throwable。

java中异常主要分为两类,checked exception以及unchecked exception(又称Runtime Exception)

平时我们try catch的或者是throw的异常,都是checked exception,而Runtime Exception一般推荐不做处理

1、unchecked exception : 所有的Runtime Exception(运行时异常) 都是直接或者间接继承自RuntimeException(继承自Exception)的。推荐不处理

2、checked exception: 凡是继承自Exception而不继承RuntimeException的异常都是非运行时异常。
必须进行处理,或者捕获,或者抛出,否则编译无法通过

处理异常又两种方法,1捕获,2抛出

一、捕获

即使用try catch finally,当然 也可以没有catch,只有try 和finally,但不推荐使用。

-- 当发生异常的时候,try块中 自发生异常的那一句代码开始,就不会继续执行,转到catch中,若有finally,则finally快中得代码也会被执行

-- try可以跟多个catch块,但同一时间,只会又一个catch块执行

-- 不同的catch,捕获不同的异常,但顺序需要注意,先出现catch所捕获的异常,不能是后面的catch块所捕获异常的父类。即后捕获的异常不能是继承自先出现的异常

-- 若try 块中又return的话,则会先执行完 finally块再return

-- 若try块中有 System.exit(0),则不会执行finally块,直接退出,因为这表示让虚拟机停止运行,代码不会再继续执行

二、抛出

-- 在方法内部使用throw关键字,在方法上使用throws关键字

-- 抛出的方法会由上一级进行选择 继续抛出去,还是捕获处理

-- 如果main方法也不处理,而将异常抛出,则最后会有JVM进行处理

抱歉!评论已关闭.