3

我目前正在重构现有的代码库 (EJB),以删除在 EJB 中捕获 Throwable 的所有块。

try {
    ... do some business logic
} catch(Throwable t){
    ... log and swallow ... :-(
}

我想/需要用适当的文档来说服我周围的人“捕捉 Throwable”对于 EJB 来说是不行的(我们对此进行了很多讨论)。Weblogic 将处理所有“错误”情况,并可能使 EJB 无效并将新的(工作的)EJB 放入池中。捕获 Throwable 会破坏 weblogic 提供的所有这些安全网,并且捕获 Throwable 无论如何都是不好的做法(但这里的人们不情愿并到处使用“Throwable”锤子)。

有没有人能指出一些解释这种行为的在线文档(对于 weblogic、jboss 等)。我通过谷歌搜索并查看了 weblogic 文档,但找不到任何东西,只是通用的 java 文档。

4

2 回答 2

4
  1. 为您团队的每个成员购买一本Joshua Bloch 编写的 Effective Java, Second Edition 。

  2. 让每个人都阅读第 9 章,“例外”,其中包括:

    • “仅在特殊情况下使用例外”
    • “对可恢复条件使用检查异常,对编程错误使用运行时异常”
    • “避免不必要地使用检查的异常”
    • “赞成使用标准例外”
    • “抛出适合抽象的异常”
    • “记录每个方法抛出的所有异常”
    • “在详细消息中包含故障捕获信息”
    • “力求失败的原子性”
    • “不要忽视异常”
于 2010-05-10T15:12:11.857 回答
2

他们说,证据就在布丁里。

写一个小例子,除了抛出不同类型的异常(运行时,错误)之外什么都不做,并展示你的容器优雅地处理它们。

这将阻止批评者死在他们的轨道上。

于 2010-05-10T15:37:54.143 回答