资讯详情

Java异常处理 - osc_uyb9f22c的个人空间 - OSCHINA - 中文开源技术交流社区

一、JDK常见的异常情况

1.常见异常总结图

28e5bdecf916a0f0c23f1a4718165489.png

2、java中异常分类

Throwable有两个直接子类:

(1)Exception:问题可以捕获

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

3.被捕获的异常分类

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

(2)Runtime异常:派生自RuntimeException异常类别throw这种异常对象可以随时抛出 throw new ArithmeticException(…);

二、异常原因

用户输入非法数据。

不存在要打开的文件。

3.网络通信是连接中断

4、JVM内存溢出

三、java程序中常见的几种异常及其原因

1、java.lang.NullpointerException(空指针异常)

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

它经常出现在创建对象和调用数组代码中,如对象未初始化或图片创建时路径错误。对数组代码

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

初始化是赋予数组中元素初始值

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

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

常。例如将String类型的数据"123456"当转换为数值数据时,可以转换。但如果是String包含类型数据

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

3、java.lang.ClassNotFoundExceptio(指定类不存在)

原因:由于类别的名称和路径不正确,程序试图通过字符串加载某个类别可能会导致异常。

调用Class.forName(),或调用ClassLoad的finaSystemClass()或LoadClass()出现异常

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

原因:检查程序中调用的数组或字符串的下标值是否超过数组的范围。一般来说,显示调用数组并不容易

样本错误,但隐式调用可能会出错。在另一种情况下,程序中定义的数组长度由某些特定方法决定,而不是

提前声明,此时可以先查看数组length,避免这种异常

5、java.lang.IllegalArgumentException(方法参数错误)

例如g.setColor(int red,int green,int blue)如果这种方法中的三个值超过255,如果程程

如果序列中有此异常,请检查方法调用中的参数传输或参数值是否错误

6、java.lang.IllegalAccessException(无访问权限)

当程序需要调用一个类,但目前的方法是,如果没有访问权限,就会出现这种异常。如果在程序中使用Package的情况下

这种异常可能发生

7、java.lang.ArithmeticException(数学运算异常)

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

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

当试图强制向下转换对象,但对象不能转换或不能转换为子类时,就会出现异常

9、 java.lang.FileNotFoundException(文件未发现异常)

当程序打开不存在的文件进行读写时,会导致异常。异常是由于FileInputStream,FileOutputStream,

RandomAccessFile即使操作文件存在,由于某些原因无法访问构造器声明,个

只读取权限文件并将数据写入其中,上述结构方法仍会引起异常

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

当试图将类型存储为不兼容对象时Object[]数组时会引起异常

11、java.lang.NoSuchMethodException(方法无异常)

当程序试图通过反射创建对象时,访问(修改或读取)某种方法,但不存在会导致异常。

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

当程序在输入过程中遇到文件或流程结束时,会引起异常。因此,异常用于检查文件或流程的结束

13、java.lang.InstantiationException(实例异常)

当试图通过Class的newInstance()创建某一类的例子的方法,但程序不能通过构造器创建对象。

Class对象表示抽象、接口、数组类、基本类型 。该Class没有相应的相应的结构器。

14、java.lang.InterruptedException(中止异常)

当一个线程处于长期等待、休眠或其他暂停状态时,其他线程通过Thread的interrupt该方法在终止线程时抛出异常。

15、java.lang.CloneNotSupportedException (不支持克隆异常)

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

16、java.lang.OutOfMemoryException (内存不足错误)

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

17、java.lang.NoClassDefFoundException (未发现类定义错误)

当Java虚拟机或类装载器试图将某一类实例化,但在找不到该类定义时抛出错误

四、Java总结异常处理。

1.不要丢弃异常。捕获异常后,需要进行相关处理。如果用户觉得异常处理不好,

让它继续传播,传播到其他地方处理,或将低级异常转化为应用级异常,

重新抛出

2、catch句子应指定特定的异常类型。不应捕获的异常也不能捕获

3、在finally释放资源finally它也会抛出异常,也需要使用try..catch处理

4.不要在代码上插入大量代码try...catch在块中,分离每个可能出现异常的句子并捕获异常

5.由于输出的数据可能不完整,用户需要进行相应的处理,至少提示数据不完整

标签: uyb型高压电容物位变送器

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台