对核心技术卷的总结,只总结概括性内容。
开发过程难免遇到异常,遇到异常时,程序员至少需要做到:
1.向用户通告错误;
2.保存所有的工作结果;
3.允许用户以妥善形式退出程序
1. 异常分类
所有异常都派生于Throwable,可以分为两类
1.Error(错误)
如系统内部错误,资源耗尽错误,此类问题很少出现,一旦出现,我们能做的只有通知用户,并尽力使程序安全终止。
2.Exception(异常)
异常可分为两种:
1.RuntimeException(运行时异常)(相当于c++中的logic-error)
属于逻辑错误,比如空指针,数组下标越界等。此异常发生时,那必然是程序员的问题。
2.IoException(相当于c++中的runtime-error)
比如FileNotFoundException。
RuntimeException和Error我们称为未受查异常(Unchecked),IoException称为已受查异常(Checked)
2.声明已检查异常
应注意两点:
1.子类覆盖超类的一个方法,子类方法中声明的已受查异常,不能比父类的更通用(即:子类只能声明更具体的异常,或者不声明异常)。
2.超类的方法没有声明已受查异常,子类也不可以抛出已受查异常
对于已存在的异常类:1.找到合适的异常;2.创建该异常的对象;3.抛出异常。
当已存在的标准异常类没办法满足描述自己想描述的信息时,可以自己创造异常类。
创建异常类方法:
1.定义一个类,该类必须派生于Exception或者是Exception类的子类
2.此类需要包含两个构造方法:1.默认的构造方法;2.带有详细描述信息的构造方法。
超类Throwable的toString方法会打印出这些详细信息。
Class MyException extends Exception{
public MyException();
public MyException(String gripe);
}
习惯上,所有派生的异常类都包含一个默认的构造器,和一个带有详细描述信息的构造器。
java.lang.Throwable
Throwable();
Throwable(String gripes); 带特定的详细描述信息
String getMessage(); 获取Throwable对象的详细描述信息