java中处理异常的方法
在java中,对于异常,一般使用throw抛出异常或者使用try catch 处理异常
1.使用throw关键字
throw用在方法内,用来抛出一个异常对象,将这个异常对象传递到调用者处,并结束当前方法的执行
格式:throw new XXXException("输出信息");
注意:
a.throw关键字必须写在方法的内部
b.throw关键字后边的new对象必须是Exception或者Exception的子类对象
c.throw关键字抛出指定的异常对象,我们就必须处理这个异常对象
i. 如果throw关键字后面抛出的是RuntimeException或者RuntimeException的子类对象,我们可以不处理,默认交给JVM处理(在控制台打印出异常,并中断程序) ii. 如果throw关键字后面抛出的是编译异常,我们就必须处理这个异常,使用throws或者try...catch
2.throws关键字的使用
关键字throws运用于方法声明之上,用于表示当前方法不处理异常,而是提醒该方法的调用者来处理异常(抛出异常)
格式: 修饰符 返回值类型 方法名(参数列表)throws AException,BException...{
throw new AException("产生原因");
throw new BException("产生原因");
...
}
注意:
a.throws关键字必须写在方法声明处
b.throws关键字后边声明的异常必须是Exception或者是Exception的子类
c.方法内部如果抛出了多个异常,那么throws后面必须也声明多个异常
如果抛出的多个异常对象存在子父类关系,那么直接声明父类即可
d.调用了一个声明抛出异常的方法,我们就必须处理声明的异常
i.继续使用throws声明抛出,交给方法的调用者处理,最终交给JVM处理 ii.使用try...catch自己处理异常
3.使用try...catch捕获异常
格式:
try{
编写可能会出现异常的代码
}catch(异常类型 e){
处理异常的代码
//记录日志/打印异常信息/继续抛出异常
}
异常的捕获的几种方式:
1. 多个异常分别处理。2. 多个异常一次捕获,多次处理。3. 多个异常一次捕获一次处理
注意:
try和catch都不能单独使用,必须连用
这种异常处理方式,要求多个catch中的异常不能相同,并且若catch中的多个异常之间有子父类异常的关系,那么子类异常要求在上面的catch处理,父类异常在下面的catch处理
4.关于异常的一些注意点总结
运行时异常被抛出可以不处理。即不捕获也不声明抛出。
如果finally有return语句,永远返回finally中的结果,避免该情况
父类方法抛出多个异常,子类重写父类方法时,抛出相同的异常或该父类异常的子类或者不抛出异常
联系实际:比如一个油漆工师傅带领一个徒弟,这个师傅会粉刷、调料等技能,
可能该徒弟比较聪明就像张无忌一样,学会了师傅的所有技能(抛出相同的异常)
或者比较笨,只学会了师傅的一点技能(抛出父类异常的子类)
也可能这个徒弟就是扶不起的阿斗,最终啥也没学会(不抛出异常)
父类方法没有抛出异常,子类重写父类方法时,也不能抛出异常,若有异常,只能通过try...catch进行捕获
联系实际:比如油漆工师傅是虚有其名,啥也不会(没有抛出异常),那么其徒弟也就什么都不会(不抛出异常)
徒弟这时想学习油漆技能(有异常需要处理)就只能求助其他高手(使用try...catch)

浙公网安备 33010602011771号