当前位置: 代码网 > it编程>编程语言>Java > Java Exception异常类的继承体系详解

Java Exception异常类的继承体系详解

2025年11月22日 Java 我要评论
1. 异常类的继承体系java把所有的非正常情况分成两种:异常(exception)和错误(error),它们都继承throwable父类。2. error错误error错误,一般是指与虚拟机相关的问

1. 异常类的继承体系

java把所有的非正常情况分成两种:异常(exception)和错误(error),它们都继承throwable父类。

2. error错误

error错误,一般是指与虚拟机相关的问题,如系统崩溃、虚拟机错误、动态链接失败等,这种错误无法恢复或不可能捕获,将导致应用程序中断。

通常应用程序无法处理这些错误,因此应用程序不应该试图使用catch块来捕获error对象。

在定义该方法时,也无须在其throws子句中声明该方法可能抛出error及其任何子类。

3. exception异常

exception分为两大类:

  • 运行时异常 [即程序运行时,发生的异常]。
  • 编译时异常 [即编程时编译器检查出的异常,checked异常]。

所有的runtimeexception类及其子类的实例被称为runtime异常;不是runtimeexception类及其子类的异常实例则被称为checked异常。

3.1 编译时异常: checked exception

只有java语言提供了checked异常,其他语言都没有提供checked异常。java认为checked异常都是可以被处理(修复)的异常,所以java程序必须显式处理checked异常。

如果程序没有处理checked异常,该程序在编译时就会发生错误,无法通过编译。

checked异常体现了java的设计哲学——没有完善错误处理的代码根本就不会被执行!

对于checked异常的处理方式有如下两种:

(1)当前方法明确知道如何处理该异常,程序应该使用try…catch块来捕获该异常,然后在对应的catch块中修复该异常。

(2)当前方法不知道如何处理这种异常,应该在定义该方法时声明抛出该异常。

常见的编译异常:

  • sqlexception 操作数据库时,查询表可能发生异常
  • ioexception 操作文件时发生的异常
  • filenotfoundexception 当操作一个不存在的文件时,发生异常
  • classnotfoundexception 加载类,但是该类不存在时,发生异常
  • eofexception 操作文件,到文件末尾,发生异常
  • illegalarguementexception 参数异常

3.2 运行时异常:runtime exception

runtimeexception即程序运行时发生的异常,编译时检测不到这种异常:

程序运行后,抛出异常:

runtime异常则更加灵活,runtime异常无须显式声明抛出,如果程序需要捕获runtime异常,也可以使用try…catch块来实现。

通过try…catch捕获异常,并打印异常栈信息:

常见的运行时异常:

  • nullpointerexception 空指针异常
  • arithmeticexception 数学运算异常
  • arrayindexoutofboundsexception 数组下标越界异常
  • classcastexception 类型转换异常
  • numberformatexception 数字格式不正确异常

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2026  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com