java 异常处理总结

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的异常,常见的比ArithmeticExceptionIllegalArgumentExceptionNullPointerException,IndexOutOfBoundsException等,都是程序员应该避免发生的异常。所以,应用程序不应该抛出unchecked异常。

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

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

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

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

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



猜你喜欢

转载自blog.csdn.net/mr_cuber/article/details/52619626