java.lang.Throwable

简介:

  1. Throwable 类是 Java 语言中所有错误或异常的超类。
  2. 继承的类:extends Object。
  3. 实现的接口:implements Serializable。
  4. 直接已知子类:Error, Exception(直接已知子类:IOException、RuntimeException)。

Error类

  1. Error类描述了java运行时内部错误资源耗尽错误

派生于RuntimeException的异常有以下几种情况(如果出现RuntimeException,那就一定是你的问题。)

  1. 错误的类型转换
  2. 数组访问越界
  3. 访问空指针

不是派生于RuntimeException的异常(“是否存在”取决于环境,而不只是取决于你的“先检查该文件是否存在,再打开文件”的代码,可能在你检查它是否存在之后就已经被删除了,时间上的微小差距是不可以忽略的。)

  1. 试图读取不存在的数据。
  2. 试图打开不存在的文件。
  3. 试图查找不存在的Class对象。

抛出异常(throws XXException)

java.lang.Object
–> java.lang.Throwable
——> java.lang.Exception
———-> java.io.IOException
—————-> java.io.FileNotFoundException、java.io.EOFException

//FileInputStream类的一个构造器的声明,抛出文件不存在异常
public FileInputStream(String name) throws FileNotFoundException
//假设一个名为readData的方法正在读取一个(首部信息包含Content-length:1024)的文件,然而,在读到733个字符之后文件就结束了,这是不正常的情况
String readData(Scanner in) throws EOFException //抛出文件结束异常

创建异常类

习惯上,定义的类应该包含两个构造器,一个是默认的构造器,一个是带有详细描述信息的构造器(超类Throwable会打印出这些信息)

class MyException extends IOException{
    private final static String msg="我的异常";
    public MyException(){}
    public MyException(String msg){
       super(msg);
    }
}

捕获异常

你可能感兴趣的:(java)