异常处理:父class异常是否也会捕获子异常

Exception Handling: Will parent class exception catch child exception too

SAXException is extended by SAXNotRecognizedException, SAXNotSupportedException

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

如果假设 'do something' 有一些代码会抛出 SAXNotRecognizedException or SAXNotSupportedException,如果发生这种情况,则什么都不会发生。如果发生 SAXNotRecognizedException,则不会发生任何事情,因为它是一个空块。同样对于 ParserConfigurationException。现在,即使我说不对 ParserConfigurationException 执行任何操作,也会抛出 ParserConfigurationException 的异常。

我基本上希望它在 SAXNotRecognizedException or SAXNotSupportedException 发生时什么也不做。

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

如果您只想捕获 SAXNotRecognizedExceptionSAXNotSupportedException,更好的方法是 Java 7:

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

请注意,不会捕获其他 SAXException。