Java 异常处理要求
在java中使用特定类时,为什么我似乎被迫在JavaAPI中为某些类提供异常处理 例如:Java 异常处理要求,java,exception-handling,Java,Exception Handling,在java中使用特定类时,为什么我似乎被迫在JavaAPI中为某些类提供异常处理 例如: private DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); private DocumentBuilder db; try { db = dbf.newDocumentBuilder(); } catch(Exception e) {} 将编译,但: private Documen
private DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
private DocumentBuilder db;
try {
db = dbf.newDocumentBuilder();
} catch(Exception e) {}
将编译,但:
private DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
private DocumentBuilder db;
db = dbf.newDocumentBuilder();
不会。为什么?有人能帮我澄清一下吗?我不能让可能的异常在运行时影响我的程序而不处理它吗?因为Java已经检查了异常。这意味着编译器将要求您捕获异常或通告您的方法可能会引发被调用方法可能引发的异常 可以引发
parserConfiguration异常
你不必抓住它,但如果你不抓住它,你就必须在你的方法上宣传这一事实。例如:
private void myMethod() throws ParserConfigurationException
这告诉消费代码,它需要准备好捕获和处理异常
这完全是另一个论点,即检查异常是否是一件好事。互联网上不乏关于这个问题的辩论。但这不是编译器要关心的:)
还请注意,在编译时:
空的
catch
块是一个众所周知的坏主意。这意味着您正在捕获异常,但您没有对其进行有意义的处理 Oracle网站在以下位置回答了我的问题:
try {
db = dbf.newDocumentBuilder();
} catch(Exception e) {}