常见的异常

一、   常见的未检查异常

l  算术异常 ArithmeticException

u ArithmeticException出现的最常见的原因就是发生了整数除0。

l  数组存值异常 ArrayStoreException

u 通常情况下IDE会报告这类异常,但是如果数组的引用类型是Object就不会报错。所以一定要最小化数组的类型,能声明确定类型的就不要用Object类型。程序员只要在为数组元素赋值时注意元素的类型,就可以避免这个异常。

l  数组下标越界异常 ArrayIndexOutOfBoundsException

n  非法索引访问数组时抛出该异常

u 如果要遍历数组中的所有元素,则推荐使用加强版的for循环,它可以避免数组的下标运算。如果要使用数组的下标,如果需要使用数组的长度,则推荐使用length属性。另外,使用ArrayList类也可以避免这些问题。

l  空指针异常 NullPointerException

n  当应用程序试图在需要对象的地方使用null时,抛出该异常。这些情况包括:

  1. 调用null对象的实例方法
  2. 访问或修改null对象的字段
  3. 将null作为一个数组,获得其长度
  4. 将null作为一个数组,访问或修改其元素值
  5. 将null作为Throwable值抛出

u 推荐在创建引用类型变量之后立即对其赋值,这样可以避免以后出现空指针异常。如果不能立即执行赋值操作,则在使用引用变量时,使用条件判断语句,先判断是否为空,再使用相关的方法。

二、   常见的已检查异常

l  类未发现异常 ClassNotFoundException

n  当应用程序试图使用以下方法通过字符串名加载类时,抛出该异常。例如:

  1. Class类中的forName方法
  2. ClassLoader类中的findSystemClass方法
  3. ClassLoader类中的loadClass方法

u 如果使用IDE,则会对用户直接使用的不存在的类进行提示。如果使用Class类来加载类,则可以根据输出的异常信息来判断有没有引入相关的jar包。

l  非法访问异常 IllegalAccessException

n  IllegalAccessException 是当应用程序试图反射性地创建一个实例(而不是数组)、设置或获取一个字段,或者调用一个方法,但当前正在执行的方法无法访问指定类、字段、方法或构造方法的定义时抛出的异常。

u 出现该异常最常见的情况是在有安全管理器的情况下使用反射设置私有域的值。如果要修改该值,则必须使用setAccessible()修改其可见性。对于应用程序员而言,通常不能使用反射来访问私有域。

l  文件未发现异常 FileNotFoundException

n  FileNotFoundException在试图打开指定路径名表示的文件失败时抛出。在不存在具体指定路径名的文件时,该异常将由FileInputStream、FileOutputStream和RandomAccessFile构造方法抛出。如果该文件存在,但是由于某些原因不可访问,如试图打开一个只读文件进行写入,则此时这些构造方法仍然会抛出该异常。

u 如果不能确定文件是否存在,则可以使用File类的exists()方法进行判断。如果返回值为真,则可以进行流操作;否则需要提示用户文件不存在。也可以使用文件选择器让用户来选择需要操作的文件(非只读文件),这样可以避免该异常。

l  数据库操作异常 SQLException

n  SQLException提供 关于数据库访问错误或其它错误的异常。它可以提供以下消息:

  1. 描述错误的字符串
  2. "SQLstate"字符串,该字符串遵守XOPEN SQLstate约定或SQL:2003约定
  3. 特定于每个供应商的整数错误代码
  4. 到下一个Exception的链接
  5. 因果关系,如果存在任何导致此SQLException的原因

u 在使用JDBC连接数据库时,会出现大量的SQLException。为了让代码更加简洁,推荐使用Commons DbUtils组件来进行JDBC操作。

时间: 2024-10-13 18:24:15

常见的异常的相关文章

【译】常见 Java 异常解释(恶搞版)

常见 Java 异常解释:(译者注:非技术角度分析.阅读有风险,理解需谨慎o(╯□╰)o) java.lang ArithmeticException 你正在试图使用电脑解决一个自己解决不了的数学问题,请重新阅读你的算术表达式并再次尝试. ArrayIndexOutOfBoundsException 请查看 IndexOutOfBoundsException.不同之处在于这个异常越界的元素不止一个. ArrayStoreException 你已用光了所有数组,需要从数组商店中购买更多的数组. C

6 Java Exceptions that Haunts a Newbie Java Developer(Java菜鸟6种常见的异常)

Every now and then, I come across various newbies Java developers who are found to get stuck with some of the following common exceptions where I need to explain them all over again. I do believe that this is same with many other senior Java develope

Java中常见的异常类型

异常大体分为编译异常和运行异常两类,如果用软件开发(如Eclipse)编译异常在写代码时得到提醒,而运行异常需要在运行时才能得到提示. 下面介绍几种常见的异常类型,便于在出错时对程序进行查错: (1)Exception    各种异常的根类 如果你不知道将发生的异常集体属于哪,而可以肯定种这个地方会出现异常时,可以把异常类型定义为Exception. (2)ArithmeticException     算数运算错误异常 这个异常是在算数运算时经常遇到的,常见的情况是除数为0时抛出的异常. (3

Java开发中常见的异常问题

要调试程序,自然需要对程序中的常见的异常有一定的了解,因此在这里我将一些常见的Java程序中的异常列举出来给大家参考 AD: 作为一名开发者,Java程序员,很自然必须熟悉对程序的调试方法.而要调试程序,自然需要对程序中的常见的异常有一定的了解,这些日子很多朋友都提出了很多问题,都是关于游戏中的报错,因此在这里我将一些常见的程序中的异常列举出来给大家参考: 1. java.lang.NullPointerException 这个异常大家肯定都经常遇到,异常的解释是"程序遇上了空指针",

linux下常见内存异常查证工具和方法介绍

linux下常见内存异常查证工具和方法介绍 内存异常导致的异常往往很难查证,本文介绍在linux下的各种常见内存异常的查证工具和方法. 1.访问空指针/未初始化指针 这个是最简单的内存异常了,只要能够生成coredump文件,可以快速定位问题代码. 开启coredump 部分环境下默认不会生成coredump,需要运行如下命令:ulimit -c unlimited //unlimited表示不限制coredump文件大小,也可以指定一个最大文件大小. 定制core文件名 默认的coredump

java中常见的异常种类

Java常见的异常种类 ------------------------------------------------------------------------------- java Exception: 1.Error 2.Runtime Exception运行时异常 3.Exception 4.throw用户自定义异常 异常类分为两个大的类型:Error类代表了编译和系统的错误,不允许被捕获:Exception代表了java库方法所激发的异常.Exception类还包括Runtim

java中常见的异常类

1. java.lang.nullpointerexception   这个异常大家肯定都经常遇到,异常的解释是"程序遇上了空指针",简单地说就是调用了未经初始化的对象或者是不存在的对象,这个错误经常出现在创建图片,调用数组这些操作中,比如图片未经初始化,或者图片创建时的路径错误等等.对数组操作中出现空指针,很多情况下是一些刚开始学习编程的朋友常犯的错误,即把数组的初始化和数组元素的初始化混淆起来了.数组的初始化是对数组分配需要的空间,而初始化后的数组,其中的元素并没有实例化,依然是空

Java常见的异常大集合

算术异常类:ArithmeticExecption 空指针异常类:NullPointerException 类型强制转换异常:ClassCastException 数组负下标异常:NegativeArrayException 数组下标越界异常:ArrayIndexOutOfBoundsException 违背安全原则异常:SecturityException 文件已结束异常:EOFException 文件未找到异常:FileNotFoundException 字符串转换为数字异常:NumberF

Java 常见的异常错误分析大集合

算术异常类:ArithmeticExecption 空指针异常类:NullPointerException 类型强制转换异常:ClassCastException 数组负下标异常:NegativeArrayException 数组下标越界异常:ArrayIndexOutOfBoundsException 违背安全原则异常:SecturityException 文件已结束异常:EOFException 文件未找到异常:FileNotFoundException 字符串转换为数字异常:NumberF

java 常见的异常大集合

算术异常类:ArithmeticExecption 空指针异常类:NullPointerException 类型强制转换异常:ClassCastException 数组负下标异常:NegativeArrayException 数组下标越界异常:ArrayIndexOutOfBoundsException 违背安全原则异常:SecturityException 文件已结束异常:EOFException 文件未找到异常:FileNotFoundException 字符串转换为数字异常:NumberF