java中异常的总结_Java异常处理总结

异常是一种Exception类型的对象。

1 Exception与Error

Exception与Error继承于Throwable类,二者的区别:

Exception:一般表示的是程序中出现的问题,可以直接使用try...catch处理,该类的printStackTrace()方法输出异常信息较为完整。

Error:一般指的是JVM的错误,程序中无法处理。

Java中所有捕获范围小的异常必须放在捕获范围大的异常之前(否则编译时会报错)。对一个程序而言,如果有多个异常,最好分别进行捕获,而不要直接使用Exception捕获全部异常。

2 throws与throw

throws:在定义一个方法时可以使用throws进行声明,使用throws进行声明的方法表示此方法不处理异常,而交给方法的调用处进行处理。

throw用来人为的抛出的一个异常,抛出时,直接抛出异常类的实例化对象即可。

ThrowDemo.java

class Math{

public int div(int i,int j) throws Exception{// 定义除法操作,如果有异常,则交给被调用处处理

System.out.println("***** 计算开始 *****") ;

int temp = 0 ;// 定义局部变量

try{

temp = i / j ;// 计算,但是此处有可能出现异常

}catch(Exception e){

throw e ;

}finally{// 不管是否有异常,都要执行统一出口

System.out.println("***** 计算结束 *****") ;

}

return temp ;

}

};

public class ThrowDemo{

public static void main(String args[]){

Math m = new Math() ;

try{

System.out.println("除法操作:" + m.div(10,0)) ;

}catch(Exception e){

System.out.println("异常产生:" + e) ;

}

}

};

20180110225906935246.png

注:Throw可以配合try、catch或throws语句使用,但不可以独立存在;catch与finally不能没有try;try与catch之间不能有程序。

3 Exception与RuntimeException

继承关系:Exception->RuntimeExcetion->IllegalArgumentExcetion->NumberFormatExcetion ;Exception的抛出本质上属于多态的运用。

一般而言,Exception在程序中必须使用try...catch进行处理,但是RuntimeException可以不使用try...catch进行处理,此时如有异常产生,则异常将由JVM进行处理。

即便不是RuntimeException异常,也可以使用throws关键字来避开异常处理,这种方式本质上属于duck方式。但是ducking只是在踢皮球,早晚还是得有人来处理这件事。如果main()也duck掉异常的话,最终只有JVM来处理异常了,而Java虚拟机对异常是没有什么责任感的,这样最终会导致程序中断执行。因此,最好做个堂堂正正的程序员。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值