Java程序常见异常及处理汇总

  

  

<强> 1,常见异常总结图

  

癑ava程序常见异常及处理汇总"

  

<强> 2,java中异常分类

  

Throwable类有两个直接子类:

  

(1)例外:出现的问题是可以被捕获的

  

(2)错误:系统错误,通常由JVM处理

  

<强> 3,被捕获的异常分类

  

(1)检查异常:派生自例外的异常类,必须被捕获或再次声明抛出

  

(2)运行时异常:派生自RuntimeException的异常类。使用扔语句可以随时抛出这种异常对象扔新的ArithmeticException (…);

  

  

1,用户输入了非法数据。

  

2,要打开的文件不存在。

  

3,网络通信是连接中断

  

4, JVM内存溢出

  

  

<强> 1,java.lang.NullpointerException(空指针异常)

  

原因:这个异常经常遇到,异常的原因是程序中有空指针,即程序中调用了未经初始化的对象或者是不存在的对象。

  

经常出现在创建对象,调用数组这些代码中,比如对象未经初始化,或者图片创建时的路径错误等等。对数组代码

  

中出现空指针,是把数组的初始化和数组元素的初始化搞混淆了。数组的初始化是对数组分配空间,而数组元素的

  

初始化,是给数组中的元素赋初始值

  

<强> 2,java.lang.ClassNotFoundException(指定的类不存在)

  

原因:当试图将一个字符串类型数据转换为指定的数字类型,但该字符串不满足数值型数据的要求时,就抛出这个异

  

常。例如将字符串类型的数据“123456”转换为数值型数据时,是可以转换的的。但是如果字符串类型的数据中包含了

  

非数字型的字符,如123 * 56,此时转换为数值型时就会出现异常。系统就会捕捉到这个异常,并进行处理

  

<强> 3,java.lang.ClassNotFoundExceptio(指定的类不存在)

  

原因:是因为类的名称和路径不正确,通常都是程序试图通过字符串来加载某个类的时候可能会引发异常,例如:

  

调用forname(),或者调用ClassLoad的finaSystemClass(),或者是LoadClass()时出现异常

  

<强> 4,java.lang.IndexOutOfBoundsException(数组下标越界异常)

  

原因:查看程序中调用的数组或者字符串的下标值是不是超出了数组的范围,一般来说,显示调用数组不太容易出这

  

样的错,但隐式调用就有可能出错了,还有一种情况,是程序中定义的数组的长度是通过某些特定方法决定的,不是

  

事先声明的,这个时候可以先查看一下数组的长度,以免出现这个异常

  

<强> 5,java.lang.IllegalArgumentException(方法的参数错误)

  

例如g。改变颜色(蓝色绿色红色int, int, int)这个方法中的三个值,如果有超过255的会出现这个异常,如果程

  

序中存在这个异常,就要去检查一下方法调用中的参数传递或参数值是不是有错

  

<强> 6,java.lang.IllegalAccessException(没有访问权限)

  

当程序要调用一个类,但当前的方法即没有对该类的访问权限便会出现这个异常。如果程序中用了包的情况下

  

有可能出现这个异常

  

<强> 7,java.lang.ArithmeticException(数学运算异常)

  

当数学运算中出现了除以零这样的运算就会出这样的异常。

  

<强> java.lang.ClassCastException(数据类型转换异常)

  

当试图将对某个对象强制执行向下转换,但该对象又不可转换或又不可转换为其子类的实例时将出现该异常

  

<强> 9日java.lang.FileNotFoundException(文件未找到异常)

  

当程序打开一个不存在的文件来进行读写时将会引发该异常。该异常由FileInputStream, FileOutputStream,

  

RandomAccessFile的构造器声明抛出,即使被操作的文件存在,但是由于某些原因不可访问,比如打开一个

  

只有只读权限的文件并向其中写入数据,以上构造方法依然会引发异常

  

<强> 10,java.lang.ArrayStoreException(数组存储异常)

  

当试图将类型为不兼容类型的对象存入一个对象[]数组时将引发异常

  

<强> 11、java.lang.NoSuchMethodException(方法不存在异常)

  

当程序试图通过反射来创建对象,访问(修改或读取)某个方法,但是该方法不存在就会引发异常。

  

<强> 12日java.lang.EOFException(文件已结束异常)

Java程序常见异常及处理汇总