什么时候可以捕获运行时异常

2022-08-31 13:06:50

在最近的一个项目中,我建议在测试工具代码中捕获运行时异常并记录它。该代码处理来自数据库的一系列输入,我不希望测试由于任何一个输入(Null 值、非法参数等)失败而停止。毋庸置疑,我的建议引发了热烈的讨论。

捕获任何类型的运行时异常是否可以接受?如果是,还可以在哪些其他方案中捕获 RuntimeExceptions?


答案 1

你捕获的原因与你捕获任何异常的原因相同:你打算用它做点什么。也许您可以纠正导致异常的任何内容。也许您只是想使用不同的异常类型重新引发。RuntimeException

然而,捕捉和忽略任何异常都是非常糟糕的做法。


答案 2

除非您可以更正 RuntimeException,否则您不想捕获它...

...只有从开发人员的角度来看才是正确的....

你必须抓住所有的异常,然后它们到达UI并让你的用户难过。这意味着在“最高层”上,你想抓住进一步发生的任何事情。然后,您可以让用户知道有问题,同时采取措施通知开发人员,例如发送警报邮件或其他任何内容...

它基本上被认为是一个无法预见的数据/编程错误,因此您希望改进软件的未来版本,同时将用户带到手边并以受控的方式继续前进...


推荐