Java 内置异常类
Java 语言定义了一些异常类在 java.lang 标准包中。
标准运行时异常类的子类是最常见的异常类。由于 java.lang 包是默认加载到所有的 Java 程序的,所以大部分从运行时异常类继承而来的异常都可以直接使用。
Java 根据各个类库也定义了一些其他的异常,下面的表中列出了 Java 的非检查性异常。
异常
描述
ArithmeticException
当出现异常的运算条件时,抛出此异常。例如,一个整数”除以零”时,抛出此类的一个实例。
ArrayIndexOutOfBoundsException
用非法索引访问数组时抛出的异常。如果索引为负或大于等于数组大小,则该索引为非法索引。
ArrayStoreException
试图将错误类型的对象存储到一个对象数组时抛出的异常。
ClassCastException
当试图将对象强制转换为不是实例的子类时,抛出该异常。
IllegalArgumentException
抛出的异常表明向方法传递了一个不合法或不正确的参数。
IndexOutOfBoundsException
指示某排序索引(例如对数组、字符串或向量的排序)超出范围时抛出。
NegativeArraySizeException
如果应用程序试图创建大小为负的数组,则抛出该异常。
NullPointerException
当应用程序试图在需要对象的地方使用 null 时,抛出该异常
NumberFormatException
当应用程序试图将字符串转换成一种数值类型,但该字符串不能转换为适当格式时,抛出该异常J
/**
* 异常:
* finally不一定被执行,,例如 catch 块中有退出系统的语句 System.exit(-1); finally就不会被执行
*
*/
import java.io.*;
public class Demo {
/**
* @param args
*/
public static void main(String[] args) {
//检查异常1.打开文件
FileReader fr=null;
try {
fr=new FileReader(“d:\aa.text”);
// 在出现异常的地方,下面的代码的就不执行
System.out.println(“aaa”);
} catch (Exception e) {
System.out.println(“进入catch”);
// 文档读取异常
// System.exit(-1);
System.out.println(“message=”+e.getLocalizedMessage()); //没有报哪一行出错
e.printStackTrace(); // 打印出错异常还出现可以报出错先异常的行
}
// 这个语句块不管发生没有发生异常,都会执行
// 一般来说,把需要关闭的资源,文件,连接,内存等
finally
{
System.out.println(“进入finally”);
if(fr!=null);
{
try {
fr.close();
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
}
}
System.out.println(“OK”);
}
}