java 异常处理总结

来源:互联网 发布:软件光盘品牌 编辑:程序博客网 时间:2024/06/05 10:51

1.异常层次结构

Java中,异常对象都是派生于Throwable类的一个实例。下图是异常层次结构:


源自Core Java(Volume I--Fundamentals 9th Edition) (1) 

    派生于Error和RuntimeException的所有异常称为未检查(unchecked)异常,所有其他的异常称为已检查(checked)异常。

在unchecked异常中,Error类层次描述了Java运行时系统的内部错误和资源耗尽情况,程序员无法控制(these errors are abnormal conditions that should never occur)。继承自RuntimeException的异常,常见的比ArithmeticException, IllegalArgumentException, NullPointerException,IndexOutOfBoundsException等,都是程序员应该避免发生的异常。所以,应用程序不应该抛出unchecked异常。

此外,方法中所有可能抛出的checked异常都必须声明,否则会出编译错误。

2.继承中重写方法时的异常处理

1)子类重写父类方法要抛出(throws)与父类一致的异常,或者不抛出异常

2)子类重写父类方法所抛出(throws)的异常不能超过父类的范畴

不允许在子类throws中出现超过父类方法所列的异常类范围。注意:捕获与抛出是两个概念,捕获是自己处理,抛出是不知道怎样处理,将异常进行传递



0 0