相关疑难解决方法(0)

在catch区块内抛出异常 - 它会被再次捕获吗?

这可能看起来像编程101问题,我原以为我知道答案,但现在发现自己需要仔细检查.在下面这段代码中,第一个catch块中抛出的异常是否会被下面的常规异常捕获块捕获?

try {
  // Do something
} catch(IOException e) {
  throw new ApplicationException("Problem connecting to server");
} catch(Exception e) {
  // Will the ApplicationException be caught here?
}
Run Code Online (Sandbox Code Playgroud)

我一直认为答案是否定的,但现在我有一些可能由此造成的奇怪行为.答案可能与大多数语言相同,但我在Java工作.

java exception

166
推荐指数
4
解决办法
18万
查看次数

投掷或尝试捕获

在决定是否向方法添加throws子句或使用try-catch?时,一般的经验法则是什么?

从我自己阅读的内容来看,throws应该在调用者违反合同结束时使用(传递对象),并且try-catch在方法内执行操作期间发生异常时应该使用.它是否正确?如果是这样,应该在呼叫者方面做些什么?

PS:通过谷歌和搜索引擎优化搜索,但希望得到一个明确的答案.

java exception-handling exception try-catch throws

71
推荐指数
4
解决办法
5万
查看次数

标签 统计

exception ×2

java ×2

exception-handling ×1

throws ×1

try-catch ×1