Java的异常体系

异常的作用

在程序运行过程中出现错误,导致程序出现非预期场景。异常处理可以保证出现错误后,控制接下来的程序流程,是选择定位错误

信息,还是抛出异常或捕获异常、还是避免程序非正常退出,都取决于我们。

异常体系的引入增加了程序的健壮性。

异常的体系结构

Java的异常体系结构如上图所示,异常的顶级类是Throwable类,它是Object的子类,实现了Serializable接口,在其下,分为以下两大类:

  • Error
  • Exception
    • RuntimeException
    • Checked Exception

Error和Exception的区别

Error和Exception都继承自Throwable

  • Error:程序无法处理的系统错误,编译器不做检查
  • Exception:异常,程序可以处理的异常,捕获后可能恢复
  • 前者无法处理,而后者可以处理
  • Error属于JVM需要承担的责任,RuntimeException是程序应该承担的责任,Checked Exception是编译器应该承担的责任

Exception

Exception又可以分为RuntimeException(运行时异常)和Checked Exception(也叫受检查异常)。

  • RuntimeException:不可预知的,程序应当自行避免
  • Checked Exception:可预知的,从编译器效验的异常,不进行处理,编译器会报错

常见的Error和Exception

Error

  • NoClassDefFoundError:找不到class定义的错误,可能是类依赖的class文件或者jar包不存在
  • StackOverflowError:深递归导致栈被耗尽而抛出的错误
  • OutOfMemoryError:内存溢出异常

RuntimeException

  • NullPointerException:空指针引用异常
  • ClassCastException:类型强制转换异常
  • IllegalArgumentException:传递非法参数异常
  • IndexOutOfBoundsException:数组下标越界异常
  • NumberFormatException:数字格式异常

Checked Exception

  • IOException:IO操作异常
  • SQLException:SQL语句异常
  • ClassNotFoundException:找不到指定class异常
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值