异常处理:父类异常也会捕获子异常

时间:2015-09-01 15:32:11

标签: java exception-handling sax saxparser saxparseexception

SAXException扩展为SAXNotRecognizedExceptionSAXNotSupportedException

try {
  //do Something
} catch(SAXException e) {}
  catch(ParserConfigurationException pce) {}

如果我们说“做某事”有一些代码会抛出SAXNotRecognizedException or SAXNotSupportedException,如果发生这种情况,那么什么都不会发生。如果发生SAXNotRecognizedException,那么因为它是一个空块,所以不会发生任何事情。同样适用于ParserConfigurationException。现在,即使我说没有为ParserConfigurationException做任何事情,也会抛出ParserConfigurationException的异常。

我基本上希望在SAXNotRecognizedException or SAXNotSupportedException发生时不执行任何操作。

2 个答案:

答案 0 :(得分:5)

是的父异常也会捕获子异常。一个已知的例子是当您捕获异常时。这个try块将捕获所有排序(子)异常,例如NullPointer等。

答案 1 :(得分:1)

如果您只想捕获SAXNotRecognizedExceptionSAXNotSupportedException,那么自Java 7以来更好的方法是:

try {
  // Do something
} catch(SAXNotRecognizedException | SAXNotSupportedException e) {
  // Do nothing
}

请注意,其他SAXExceptions不会被捕获。