如何说服其他开发者不要忽视异常?

Mne*_*nth 9 java exception try-catch

最近我在另一个开发人员接管的应用程序中遇到了一个错误.我调试了原因,一个多小时后我意识到,问题不是产生异常的代码,而是在返回错误数据之前执行的一些代码.如果我潜入这里,我遇到了以下情况:

try {
  ...
} catch (XYException e){}
Run Code Online (Sandbox Code Playgroud)

如果Exception会被传播(我做了一个更改),我会在几分钟内找到错误的原因,因为stacktrace已经指出了问题所在.那么如何说服其他开发人员永远不会以这种方式捕获和忽略异常呢?

Yuv*_*dam 16

简单的经验法则:当且仅当您有一种有意义的处理方式时才捕获异常.在您的工作场所做任何您需要做的事情来传播这个简单的规则.

通过使用PMD等工具,您甚至可以在所有开发人员的开发环境中实施此功能.EmptyCatchBlock(基本规则下的第一条规则)是一条完全符合您需求的规则.如果您需要更好地控制异常处理,那么对于异常,您还有一些现成的开箱即用规则.

然而,根据我的经验,强制使用PMD等工具绝不能取代适当的开发实践和开发人员教育.


Kyl*_*ndo 5

开始BadHumour:

在代码中添加一个静默的关键异常,导致应用程序关闭,
让他们坐下来试图找到它大约一个小时 - 然后教育

结束BadHumour

简单的规则很简单:在特殊情况下使用例外.其他任何事都是愚蠢和浪费.比较吞咽糖果涂层剃刀刀片的例外情况.它们现在可能味道不错,但要等到它们开始被消化.(编码测试系统与调试实时系统)