异常体系总结

异常体系

 

 

Throwable类是Java中所有 错误(Error) 或 异常(Exception)的超类。只有当对象是此类(或其子类)
之一的实例时,才能通过Java虚拟机或 Java的throw语句抛出。

(上边)
Error 是程序在运行过程中出现的无法处理的错误,比如:OutOfMemeoryError,StackOverFlowError,
ThreadDeath,NoSuchMethodError等,当这些错误发生时,程序是无法处理(try...catch捕获或throws抛出)的,JVM一般会终止线程。


(下边)
程序在编译和运行时出现的另一类错误称为异常,它是JVM通知程序员的一种方式。通过这种方式,让程序员
知道已经或可能出现的错误,要求程序员对其进行处理。

异常分为运行时异常  与 编译时异常 , 又称为 unchecked 异常 与  checked异常。


运行时异常,是RuntimeException类或其子类,即只有在运行时才出现的异常。如,NullPointerException,
ArrayIndexOutOfBoundsException, IllegalArgumentException, ClassCastException ,NumberFormat等
均属于运行时异常。这些异常类的对象 在调用某个方法的时候 ,通过 throw关键字 将异常对象抛出,再由方法
后的throws关键字 抛出 这个方法,抛给调用者。 在编译的时候,不要求必须处理(捕获 或 throws抛出)。
说明,只要代码写的足够仔细,程序足够健壮,运行时异常 一般是可以避免的。

编译时异常,也叫 检查( checked )异常,Exception类 以及 除了RuntimeException类的 直接的子类(注意:RuntimeException也是Exception类的子类)均属于编译时异常。

既在代码编写时要求必须捕获或抛出的异常,若不处理(捕获 或 throws抛出),则代码无法通过编译,比如:IOException,SQLException,ClassNotFoundException等均属于编译时异常。

RuntimeException类 及其子类以外的异常,均属于编译时异常。

=======================================================================

自定义异常部分:
用户自定义类继承Exception,属于编译时异常。
用户自定义类继承RuntimeException,属于运行时异常。

=========================================================================

异常包含三个部分:
1,new一个异常类的对象

2,通过throw关键字抛出异常,  抛在本地

3,处理异常 !     刚通过throw关键字抛到本地的异常对象,一般都是通过throws 抛出方法外,抛给调用者,一层层的抛出,一直到表示层 ,然后在try...catch... 捕获 。


 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值