java中常见的异常以及解决方法

Posted on   须臾li  阅读(53)  评论(0编辑  收藏  举报

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、自定义异常

>开发者可以根据需要创建自己的异常类,通常继承自ExceptionRuntimeException。

>自定义异常类通常包含至少一个构造函数,它调用超类的构造函数并传递错误消息。

>也可以提供额外的构造函数来接受导致异常的原因(Throwable类)和其他参数。

在实际编程中,合理的异常处理可以使程序更加健壮和易于维护。

通常,我们应当尽量捕获并处理那些可以恢复的异常,而对于那些无法恢复的错误,可以选择记录日志并优雅地终止程序。

相关博文:
阅读排行:
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】

随笔 - 6, 文章 - 1, 评论 - 0, 阅读 - 249

Copyright © 2025 须臾li
Powered by .NET 9.0 on Kubernetes

点击右上角即可分享
微信分享提示