问题:关于抛出例外的一个问题。

写了一个类 InventoryHandler 继承一个父类 DefaultHandler。父类中定义的方法抛出了一个SAXException: public void fatalError(SAXParserException spe) throws SAXException

在子类中实现该方法,但定义时并没有抛出例外: public void fatalError(SAXParserException spe)

程序竟然可以正常编译,感到很奇怪。

___________________________________________________________________________

答曰:子类继承父类,继承的方法所抛出的例外可以小于父类抛出的例外,不能大于父类抛出的例外,即子类方法抛出的例外不能是父类相应方法抛出例外的父类,但可以是子类,当然也包括不抛出例外,所以程序正确编译,同时,父类方法没有抛出的例外,子类相应方法不能抛出。

问题得解。
原文地址:https://www.cnblogs.com/johnny/p/101147.html