使用Java实现面向对象_第五章_异常(小结)

1. java.lang.NullPointerException(空指针异常)
 调用了未经初始化的对象或者是不存在的对象

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

即把数组的初始化和数组元素的初始化混淆起来了。数组的初始化是对数组分配需要的空间,而初始化后的数组,其中的元素并没有实例化,

依然是空的,所以还需要对每个元素都进行初始化(如果要调用的话)。

2. java.lang.ClassNotFoundException

   指定的类不存在

这里主要考虑一下类的名称和路径是否正确即可,通常都是程序试图通过字符串来加载某个类时可能引发异常

比如:调用Class.forName();

        或者调用ClassLoadfinaSystemClass();或者LoadClass();

3. java.lang.NumberFormatException

   字符串转换为数字异常

 当试图将一个String转换为指定的数字类型,而该字符串确不满足数字类型要求的格式时,抛出该异常.如现在讲字符型的数据“123456”转换为数值型数据时,是允许的。

但是如果字符型数据中包含了非数字型的字符,如123#56,此时转换为数值型时就会出现异常。系统就会捕捉到这个异常,并进行处理.

4. java.lang.IndexOutOfBoundsException

  数组下标越界异常

 查看调用的数组或者字符串的下标值是不是超出了数组的范围,一般来说,显示(即直接用常数当下标)调用不太容易出这样的错,但隐式(即用变量表示下标)调用就经常出错了,还有一种情况,是程序中定义的数组的长度是通过某些特定方法决定的,不是事先声明的,这个时候,最好先查看一下数组的length,以免出现这个异常

5. java.lang.IllegalArgumentException

 方法的参数错误

比如g.setColor(intred,int green,int blue)这个方法中的三个值,如果有超过255的也会出现这个异常,因此一旦发现这个异常,我们要做的,就是赶紧去检查一下方法调用中的参数传递是不是出现了错误。

6. java.lang.IllegalAccessException

 没有访问权限

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

7. java.lang.ArithmeticException

 数学运算异常

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

8. java.lang.ClassCastException

 数据类型转换异常

当试图将对某个对象强制执行向下转型,但该对象又不可转换又不可转换为其子类的实例时将引发该异常,如下列代码

                            Object obj = newInteger(0);

                            String str= obj;

9. java.lang.FileNotFoundException

 文件未找到异常

当程序试图打开一个不存在的文件进行读写时将会引发该异常。该异常由FileInputStream,FileOutputStream,RandomAccessFile的构造器声明抛出

即使被操作的文件存在,但是由于某些原因不可访问,比如打开一个只读文件进行写入,这些构造方法仍然会引发异常

10. java.lang.ArrayStoreException

 数组存储异常

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

                         Object[] obj =new String[3];

                         obj[0] = newInteger(0);

11. java.lang.NoSuchMethodException

方法不存在异常

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

 

12. java.lang.NoSuchFiledException

方法不存在异常

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

 

13. java.lang.EOFException

文件已结束异常

当程序在输入的过程中遇到文件或流的结尾时,引发异常。因此该异常用于检查是否达到文件或流的结尾

14. java.lang.InstantiationException

实例化异常

当试图通过ClassnewInstance()方法创建某个类的实例,但程序无法通过该构造器来创建该对象时引发

·        Class对象表示一个抽象类,接口,数组类,基本类型

·        Class表示的类没有对应的构造器

15java.lang.InterruptedException

被中止异常

当某个线程处于长时间的等待、休眠或其他暂停状态,而此时其他的线程通过Threadinterrupt方法终止该线程时抛出该异常。 

16java.lang.CloneNotSupportedException
不支持克隆异常

当没有实现Cloneable接口或者不支持克隆方法时,调用其clone()方法则抛出该异常

17java.lang.OutOfMemoryException
内存不足错误

当可用内存不足以让Java虚拟机分配给一个对象时抛出该错误。

18java.lang.NoClassDefFoundException
未找到类定义错误

Java虚拟机或者类装载器试图实例化某个类,而找不到该类的定义时抛出该错误。

违背安全原则异常:SecturityException

操作数据库异常:SQLException

输入输出异常:IOException

通信异常:SocketException

 

NullPointerException

空指针异常类

ClassCastException

类型强制转换异常

ArithmeticExecption

算术异常类

NegativeArrayException

数组负下标异常

ArrayIndexOutOfBoundsException

数组下标越界异常

NumberFormatException

字符串转换为数字异常

FileNotFoundException

文件未找到异常

EOFException

文件已结束异常

SecturityException

违背安全原则异常

SQLException

操作数据库异常

IOException

输入输出异常

NoSuchMethodException

方法未找到异常

AbstractMethodError

抽象方法错误。当应用试图调用抽象方法时抛出

AssertionError

用来指示一个断言失败的情况

ClassCircularityError

在初始化一个类时,若检测到类之间循环依赖则抛出该异常

ClassFormatError

文件的内容不符合类的有效格式时抛出

Error

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

ExceptionInInitializerError

初始化程序错误

IllegalAccessError

非法参数违法访问错误  当一个应用试图访问、修改某个类的域(Field)或者调用其方法,但是又违反域或方法的可见性声明

IncompatibleClassChangeError

不兼容的类变化错误当正在执行的方法所依赖的类定义发生了不兼容的改变时抛出该异常

InstantiationError

实例化错误 new操作符构造一个抽象类或者接口时抛出该异常

InternalError

内部错误用于指示 java虚拟机发生了内部错误

LinkageError

链接错误该错误及其所有子类指示某个类依赖于另外一些类在该类编译之后被依赖的类改变了其类定义而没有重新编译所有的类

NoClassDefFoundError

未找到类定义错误

NoSuchFieldError

域不存在错误该类的定义中没有该域的定义时抛出该错误

NoSuchMethodError

方法不存在错误

OutOfMemoryError

内存不足错误

StackOverflowError

堆栈溢出错误

ThreadDeath

线程结束当调用Thread类的stop方法时抛出该错误用于指示线程结束

UnknownError

未知错误 java 虚拟机发生了未知严重错误的情况

UnsatisfiedLinkError

未满足的链接错误 java虚拟机未找到某个类的声明为native方法的本机语言定义时抛

UnsupportedClassVersionError

不支持的类版本错误

VerifyError

验证错误

VirtualMachineError

虚拟机错误继续执行操作所需的资源不足的情况

RuntimeException

是那些可能在 Java 虚拟机正常运行期间抛出的异常的超类可能在执行方法期间抛出但未被捕获的RuntimeException的任何子类都无需throws子句中进行声明

ClassNotFoundException

找不到数据库驱动类

CloneNotSupportedException

克隆不支持

InterruptedException

线程被中断异常

StringIndexOutOfBoundsException

字符串越界

UnsupportedOperationException

该操作不被支持,如果我们希望不支持这个方法,可以抛出这个异常

IllegalStateException

非法状态

 

 

 

猜你喜欢

转载自blog.csdn.net/mrsupermanl/article/details/80265620