Java常见异常类型及原因分析(下)

这里介绍几种常见的异常并对原因进行分析,包括:

  • ArrayIndexOutOfBoundsException异常;
  • UnsupportedClassVersionError错误;
  • NumberFormatException异常;
  • 堆栈溢出和内存溢出。

3. ArrayIndexOutOfBoundsException异常

这是一个非常常见的异常,从名字上看是数组下标越界错误,解决方法就是查看为什么下标越界,下面就是一个错误实例:

 Exception in thread "main"java.lang.ArrayIndexOutOfBoundsException:2
 at test4.State.nextStates(State.java93)
 at test4.State.main(State.java:478)

从这些提示信息中可以获取如下信息:
1) 错误发生在93行
2)发生错误的时候,下标的值为2
接下来分析为什么下标值是2不可以就解决问题了。

4. UnsupportedClassVersionError

错误提示如下:

 java.lang.UnsupportedClassVersionError:Bad version number in.class file

错误原因:
编译Java和运行Java所使用的Java的版本不一致。例如,编译的时候使用的Java版本是6,运行时候使用的Java版本是5。
解决方案:
修改运行环境的Java版本或者修改编译环境的Java版本,让两者保持一致。

5. NumberFormatException异常

数字转换异常,在把一个表示数字的字符串转换成数字类型的时候可能会报这个异常,原因是作为参数的字符串不是由数字组成的。

6. 堆栈溢出和内存溢出

在递归调用的时候可能会产生堆栈溢出的情况,因为在递归调用的时候需要把调用的状态保存起来,如果递归的深度达到一定程度,将产生堆栈溢出的异常。
如果虚拟机的内存比较小,而程序对内存的要求比较高,则可能产生内存溢出错误。


常见的异常类

异常 说明
RuntimeException Java.lang包中多数异常的基类
ArithmeticException 算术错误,如除以0
IllegalArgumentException 方法收到非法参数
SecurityException 试图违反安全性
ClassNotFoundException 不能加载请求的类
AWTException AWT中的异常
IOException I/O异常的根类
FileNotFoundException 不能找到文件
EOFException 文件结束

你可能感兴趣的:(Java常用工具类)