我目前正在重构现有的代码库(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文档。
答案 0 :(得分:4)
为团队中的每位成员购买Effective Java, Second Edition by Joshua Bloch的副本。
让大家阅读第9章“例外”,其中包括:
答案 1 :(得分:2)
他们说,证据就在布丁中。
编写一个小例子,除了抛出不同类型的异常(运行时,错误)之外什么都不做,并证明你的容器正常处理它们。
这将阻止批评者死在他们的轨道上。