我已经阅读了有关此的所有内容,但我仍然不明白如何使用已检查和未检查的异常。我想我仍然无法理解这个概念。我在 StackOverflow 上阅读过,最好使用未检查的异常而不是检查的异常,但是 Eclipse强制我使用检查的异常,如FileNotFoundException
(AFAIK,如果 Eclipse 强制我插入一个 try/catch 块,它是一个检查的异常)。我想知道,有什么办法可以将检查翻译成未检查?到底在处理什么?我不明白处理异常是什么。
我在这里有这个例子,我真的很想知道如何处理(?)这个。这是一个检查异常,对吧?
public void readFile() {
File foo = new File("./foo.bar");
try {
BufferedReader bufferedReader = new BufferedReader(new FileReader(foo));
} catch (FileNotFoundException e) {
// What should I do here?
}
getDataFromFile(bufferedReader);
}
我见过人们在这里做的各种事情。有些打印堆栈跟踪,这是我通常做的,我看不出它有什么问题。它为我提供了调试所需的信息。有些人忽略它们,我认为不应该这样做(我看到 JNode OS 引导程序忽略了一个异常)。有些人只是throws
在签名中添加声明。有些会在那个东西里面抛出更多异常!(我想也许这就是使用未检查而不是检查的意思?)
此外,如果您添加throws
声明,您将被迫进一步放置一个 try/catch 块,如果您有一个非常大的应用程序,这很不方便。对不起,我只是一无所知。完全地。我正在努力学习优秀而优雅的设计,这对我来说是一种折磨。