这是一个讨论得很好的话题。在许多链接中,我确实发现以下两个有用。
我的问题是:
我正在编写多种方法,其中一些用于一般用途 - 例如,写入文件,从文件读取,使用一些正则表达式拆分字符串。
我从我的应用程序的不同部分调用这些方法 - 比如class1,class 2和class 3调用文件编写方法,但是使用不同的文件名和数据。
我应该在哪里添加try catch和throws? 1.最外层的方法,比如main,我从哪里调用class1,class2和class3方法在最里面的函数中有一组try,catch和use throws。
哪个是更好的选择,为什么?有没有其他方法可以解决这个问题。
由于
答案 0 :(得分:2)
此问题的核心是如何逻辑决定需要处理例外的地方。
我们举一个例子。获取File对象并执行某些操作的方法。
public void performFileOperation(File f) throws FileNotFoundException{
// Perform logic.
}
在这种情况下,您可能希望调用此方法的类/方法处理 Exception
。如果在performFileOperation()
方法中有try / catch块,则调用performFileOperation()
方法的方法永远不会知道操作是否失败(因此无法知道如何处理)。 / p>
实际上,处理引发的Exception
是有意义的。 您需要确定代码的哪些部分需要知道发生了异常,并在那里使用try / catch块。如果下一级别也需要知道,那么catch块可以抛出Exception
,这样堆栈中的方法也可以知道并处理它。
另一个看待它的好方法是需要处理大多数异常。他们需要做些什么。如果你的方法不能做一些重要的事情来处理那个异常,那么它需要throw
Exception
,直到它能够到达一个可以有意义地处理(读取,做某事)它的地方
我希望这会有所帮助。