JAVA项目中常见的异常处理总结

JAVA项目中常见的异常处理总结在Java应用程序中,异常处理机制为:抛出异常,捕捉异常。1.抛出异常:当一个方法出现错误引发异常时,方法创建异常对象并交付运行时系统,异常对象中包含了异常类型和异常出现时的程序状态等异常信息。运行时系统负责寻找处置异常的代码并执行。2.捕获异常:在方法抛出异常之后,运行时系统将转为寻找

大家好,欢迎来到IT知识分享网。JAVA项目中常见的异常处理总结

 

Java 应用程序中,异常处理机制为:抛出异常,捕捉异常。

1. 抛出异常:当一个方法出现错误引发异常时,方法创建异常对象并交付运行时系统,异常对象中包含了异常类型和异常出现时的程序状态等异常信息。运行时系统负责寻找处置异常的代码并执行。

2. 捕获异常:在方法抛出异常之后,运行时系统将转为寻找合适的异常处理器(exception handler)。潜在的异常处理器是异常发生时依次存留在调用栈中的方法的集合。当异常处理器所能处理的异常类型与方法抛出的异常类型相符时,即为合适 的异常处理器。运行时系统从发生异常的方法开始,依次回查调用栈中的方法,直至找到含有合适异常处理器的方法并执行。当运行时系统遍历调用栈而未找到合适 的异常处理器,则运行时系统终止。

经过在网上的搜索,java项目的常见异常我找到了17个,接下来我一一说明。

1.空指针异常(java.lang.nullpointerexception)。

原因:(1)使用之前是否已经初始化(2)在函数中返回了null值。

解决方法:使用equals()方法时,要遵循常量在前变量在后的原则;通过返回空的 Collection  Array 来替代 null 值;

2.指定的类不存在(java.lang.ClassNotFoundException)。

遇到这种异常一般可以选择下载并导入相关的jar包,如果把jar包导入之后仍出现这种错误,就需要开启自己的编辑器去调整设置了,在使用tomcat之前,先检查lib中是否导入相关的jar包。

3.字符串转换为数字的异常(java.lang.NumberFormatException)。

该异常有以下几个原因:输入的字符串中是否含有不是数字的字符,转换时输入的字符串中不能含有不是数字的字符;如果输入的字符串太长,转换为数字超出了int,long等类型的范围,也会出现异常。解决方法就是检查之前的字符串。

4.数组下标越界异常(java.lang.IndexOutOfBoundsException)

异常原因:例如你定义了一个长度为5的数组,那么你使用a[5](数组从a[0]开始),那么就会出现异常。

在使用数组的时候要注意数组的长度,当然如果想要节省空间的话,可以使用动态数组,在那之前可以先用length来获取数组的长度,从而规避错误。

5.数字运算异常(java.lang.ArithmeticException)

原因:例如出现了分母为0此类的错误就会出现异常。

6.没有访问权限(java.lang.IllegalAccessException)

原因:在访问一个方法的时候,注意该方法的访问权限(public或private),使用正确的访问方法。

7.方法的参数错误(java.lang.IllegalArgumentException)

例如:定义的参数类型为int,调用的时候却使用的字符串类;或者定义的参数类型为int,调用的数超出了int范围,就会报错。

在调用方法的时候检查参数时候正确。

8.数据类型转换异常(java.lang.ClassCastException)

例如student和teacher都是person的子类,如果你将student转换为teacher类,就会出现错误。一般在进行强制类型转换的时候容易发生该错误,所以在类型转换之前判断类型转换是否合法。

9.文件未找到异常(java.lang.FileNotFoundException)

一般当你去访问一个不存在的文件的时候,就会出现此类异常;还有是该文件存在,但是出于某种原因无法打开,也会报出此类错误。

10.数组存储异常(java.lang.ArrayStoreException)

在一个数族中存储错误类型的元素就会出现该异常,例如,在int类型数组中存储String类型的元素就会报错。

解决方法是存储数组之前检查数据类型,在必要时进行数据类型转换。

11.方法不存在异常(java.lang.NoSuchMethodException)

调用的方法不存在。

解决方法:放弃调用该方法或者构造该方法

12.文件已结束异常(java.lang.EOFException)

程序在输入的过程中遇到了文件或者流的结尾就会引发该异常。此异常常用于检查是否到达文件或者流的结尾。

13.实例化异常java.lang.InstantiationException)

使用类创建对象的时候无法实现实例化所引发的异常。

解决方法:定义构造方法。

14.被终止异常java.lang.InterruptedException)

通过其他线程的Thread的interrupt方法中止另一个线程时报出的错误。

解决方法:一,不做处理,直接抛出;二,捕获异常,再次调用interrupt方法,将中断状态重新设置为true。

15.不支持克隆异常java.lang.CloneNotSupportedException)
没有实现Cloneable的接口便调用了clone方法就会引发该异常;若类不支持Cloneable接口,也会引发该异常。

解决方法:实现Cloneable接口

16.输入输出异常(IOException)

该异常为Exception的一个分支,通常发生在文件的数据读写上。

17.错误java.lang.Error)

所有错误的基类,用于标识严重的程序运行问题。

通常原因是访问外部资源时出现一系列问题,解决方案也需要围绕访问外部资源这一重点展开。

 

 

 

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/31708.html

(0)
上一篇 2023-11-09 21:15
下一篇 2023-11-14 09:45

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

关注微信