前言
在理想的状态下,用户输入数据的格式永远是正确的,选择打开的文件也一定存在,并且永远不会出现BUG。但是,现实世界中却充满了不良的数据和带有问题的代码,那么这时候就需要考虑异常的问题了。
异常分类
在Java中,所有的异常对象都派生于Throwable类,Throwable又分为Error类和Exception类。Error类是描述Java运行时系统的内部错误和资源耗尽错误,遇到这个类型的错误,除了告知用户并且尽力地安全退出程序外,程序员再也无能为力了,但幸运的是,这种错误很少出现;Exception类又包括IOException和RuntimeException两个部分,区分这两种异常的规则是:由程序错误导致的异常属于RuntimeExceptiom,而程序本身没什么问题,但由于I/O错误这类问题则属于IOException异常。
创建自己的异常类
在程序中,可能会遇上标准异常类都无法充分描述清楚的异常,那么就需要创建自己的异常类。
我们要做的就是定义一个派生于Exception的类或者是派生于Exception子类的类。
public class OurException extends Exception {
public OurException(){
}
public OurException(String errorMessage){
super(errorMessage);
}
}
一般自定义的异常应该包含两个构造方法(一个无参一个有参),因为构建了一个带有详细描述信息的构造方法,系统就不会自动创建无参构造方法了,而有时候我们又需要用到无参构造方法,所以在这里需要自己添加异常类的无参构造方法。
接着就可以在方法中抛出自己的异常了
public void test()throws OurException{
System.out.println("出现异常!");
}
再捕获异常
public static void main(String[] args){
TestException te = new TestException();
try {
te.test();
} catch (OurException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}