Java的异常体系是基于类java.lang.Throwable的。
它有两个重要的子类:java.lang.Exception和java.lang.Error
下图是java异常体系的基本结构:
1、Throwable
所有异常和错误的超类。
有两个主要的子类:Exception和Error。
2、Error
>表示JVM无法处理的错误情况,通常是致命的,比如OutOfMemoryError、StackOverflowError等。
>这些错误通常不是程序逻辑错误引起的,而是运行环境的问题,比如资源耗尽、VM内部错误等。
>程序员通常不会去捕获这些错误,因为它们表示严重的问题,程序已经无法正常运行。
3、Exception
>表示程序可以处理的异常情况。
>分为编译时异常和运行时异常两大类
4、编译时异常
IOEXception (输入输出异常)
IOEXception:当发生输入或输出操作失败时,比如文件读写错误或网络连接问题,会抛出IOEXception。
解决方法:处理该异常可以使用try-catch语句捕获并处理异常,或者在方法声明中使用throws关键字声明抛出该异常。
SQLException (SQL异常)
SQLException:处理数据库操作时可能发生的异常,如连接数据库失败、执行SQL语句错误等。
解决方法:处理方法与lOException类似,可以使用try-catch语句捕获并处理异常,或在方法声明中声明抛出SQLException。
ClassNotFoundException(类未找到异常)
ClassNotFoundException:当试图加载某个类时,但找不到该类时,会抛出ClassNotFoundException。常见的情况是未正确配置类路径或引入依赖库。
解决方法:可以通过检查类路径或引入正确的库来解决。确保类路径(classpath)正确,包含所需的类文件。
ClassCastException(类转换异常)
ClassCastException:尝试将对象强制转换为不兼容的类型时抛出。
解决方法:确保使用instanceof检查对象类型后再进行转换。
IllegalArgumentException(非法参数异常)
IllegalArgumentException:当方法接收到一个不合法或不适当的参数时抛出。
解决方法:检查传递给方法的参数是否符合要求。
5、运行时异常
NullPointerException(空指针异常)
NullPointerException:当尝试访问空引用或未初始化的对象时,会抛出NullPointerException。
解决方法:为了避免该异常,我们应该在使用对象之前进行非空判断。
ArrayIndexOutOfBoundsException(数组越界异常)
ArrayIndexOutOfBoundsException:当尝试访问数组的索引超出有效范围时,会抛出ArrayIndexOutOfBoundsException。
解决方法:确保使用合法的数组索引。
ArithmeticException(算术异常)
ArithmeticException:当进行除零操作或其他不合法的数学运算时,会抛出ArithmeticException。
解决方法:在进行除法运算之前进行适当的检查。
6、自定义异常
>开发者可以根据需要创建自己的异常类,通常继承自Exception或RuntimeException。
>自定义异常类通常包含至少一个构造函数,它调用超类的构造函数并传递错误消息。
>也可以提供额外的构造函数来接受导致异常的原因(Throwable类)和其他参数。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】