【发布时间】:2012-07-17 19:32:08
【问题描述】:
假设我们有如下条件。
一)
public void method() throws ... {
XXXXXXXXXXXXXXXXXXXXXXX;
}
或
B)
public void method(){
try{
XXXXXXXXXXXXXXXXXXXXXXX;
}catch(...){
//doing something here
}
}
假设标有"XXXX" 的行是可能引发异常的一行代码(假设这一行不会引发错误)。
所以我的问题是,我应该在第一种情况下(在方法声明中)提到哪些异常以及我应该在我的 catch 块中捕获哪个异常??
* 我知道仅仅抛出和捕获 Exception 异常就足够了,但我认为这不是一个好的设计。 *
【问题讨论】:
-
这就是我要问的。我应该在 catch 块或 throws 处写什么???
-
您应该编写您的方法能够抛出的异常...如果您有一个像 eclipse 这样的 IDE,它会显示您需要包含的内容,或者您可以查看它的 javadoc。
-
一般经验法则:只捕获您的方法能够从中恢复的异常。
-
@Alex,我并不是真的在问这里的概念。在“...”的地方写什么非常简单:)
-
@JaikratSingh 在 A) 中 ... 的位置,写下可能发生但您无法处理的异常。在B)中...的地方,写下可能发生并且可以处理的异常类型。 (如果有更多没有理智的公共超类的人,请使用更多
catch块。Exception不理智,除非您只是将虚假的已检查异常(例如反射 API 抛出的异常)包装在未检查的异常中.)
标签: java exception exception-handling core