Java常见异常和解决方法
2019-11-18 本文已影响0人
爱吃油果子
1 通用类
1.1 异常描述
java.lang.ClassNotFoundException
造成原因
- jar包找不到
解决方法
- 从maven仓库引入
- https://mvnrepository.com/查找对应包引入pom.xml文件
- 注意对应版本,可以跟踪到调用代码再查看具体缺失的版本
- 自己重新编译过的包,本地优先加载需在配置./apache-maven-3.3.9/conf/settings.xml
中添加:
<localRepository>/Users/you.xiao/maven_repos</localRepository> - 安装自己编译过的包命令:
mvn install:install-file -Dfile=/Users/you.xiao/source/flink-1.9.0/flink-connectors/flink-connector-hive/target/flink-connector-hive_2.11-1.9.0.jar -DgroupId=org.apache.flink -DartifactId=flink-connector-hive_2.11 -Dversion=1.9-SNAPSHOT -Dpackaging=jar
1.2 异常描述
java.lang.NoSuchMethodException
造成原因
- 你要调用的方法被定义成private,可能导致调用不到
- java.lang.NoSuchMethodException为jar包版本不对
解决方法
- 检查访问控制权限
- 注意对应jar包版本,可以跟踪到调用代码再查看具体缺失的版本。
1.3 异常描述
java.lang.NullPointerException
造成原因
- 空指针异常
解决方法
- 对象未被初始化
- 注意加入非空判断
1.4 异常描述
java.text.ParseException
造成原因
- 格式转换解析异常
解决方法
- 在java中将string字符串转换为date类型的时候,有可能会出现这个异常。
SimpleDataFormat可以parse Date和String类型的数据,分类处理:
1).format.parse(date.toString)
2).(Date)format.parseObject(date)
1.5 异常描述
java.lang.NumberFormatException
造成原因
- 将非数字的字符串转换为数字格式时异常
解决方法
- 如:String str = "abc";
System.out.println("转换后的异常 :" + Integer.parseInt(str)); - 请使用正确的类型和格式。
1.6 异常描述
java.lang.ArrayIndexOutOfBoundsException
造成原因
- 数组下标越界
- 数组负下标异常为:NegativeArrayException
解决方法
- 可以选择调用数组的length来作为此条数据的长度,如str.length,如果下标从0开始,要<str.length,而不是<=str.length。
1.7 异常描述
java.lang.arithmeticexception
造成原因
- 数学运算异常
解决方法
- 比如程序中出现了除以零这样的运算就会出这样的异常,对这种异常,大家就要好好检查一下自己程序中涉及到数学运算的地方
1.8 异常描述
java.lang.illegalargumentexception
造成原因
- 方法的参数错误
解决方法
- 很多j2me的类库中的方法在一些情况下都会引发这样的错误
- 比如音量调节方法中的音量参数如果写成负数就会出现这个异常,再比如g.setcolor(int red,int green,int blue)这个方法中的三个值,如果有超过255的也会出现这个异常,因此一旦发现这个异常,我们要做的,就是赶紧去检查一下方法调用中的参数传递是不是出现了错误。
1.9 异常描述
java.lang.illegalaccessexception
造成原因
- 没有访问权限
解决方法
- 当应用程序要调用一个类,但当前的方法即没有对该类的访问权限便会出现这个异常。对程序中用了package的情况下要注意这个异常。
1.10 不一一列举
- java.lang.Error:错误,是所有错误的基类,用于标识严重的程序运行问题,这些问题通常描述一些不应被应用程序捕获的反常情况。
- ClassCastException:类型强制转换异常。
- EOFException:文件已结束异常。
- FileNotFoundException:文件未找到异常。
- SQLException:操作数据库异常。
- IOException:输入输出异常。
- java.lang.AbstractMethodError:抽象方法错误,当应用试图调用抽象方法时抛出。
- java.lang.AssertionError:断言错误,用来指示一个断言失败的情况。
- java.lang.ClassCircularityError:类循环依赖错误,在初始化一个类时,若检测到类之间循环依赖则抛出该异常。
- java.lang.ClassFormatError:类格式错误,当Java虚拟机试图从一个文件中读取Java类,而检测到该文件的内容不符合类的有效格式时抛出。
- java.lang.ExceptionInInitializerError:初始化程序错误,当执行一个类的静态初始化程序的过程中,发生了异常时抛出,静态初始化程序是指直接包含于类中的static语句段。