是否可以不惜一切代价捕获异常或避免异常?

时间:2013-07-23 14:08:18

标签: exception exception-handling fault-tolerance

处理例外情况时,最佳做法是什么?

我通常编写代码以避免任何代价的异常,我的代码通常有很多条件,如果我正在处理规范化数据库,我通常会编写一堆查询,仔细检查值是否已存在。

但是,我见过只侦听异常的代码,如果发生异常,则会对其进行适当处理。

此方案中的最佳做法是什么?

避免错误并在它们发生之前处理它们或者只是捕获异常并将其引导到正确的位置是否更好?

就性能而言,我已经看到捕获异常的速度更快;特别是如果涉及数据库的话。

但是,我觉得某些例外对于特定场景来说过于笼统,除非您看到堆栈跟踪,否则很难确定发生该异常的原因。

那就是说,除非你有一个错误报告工具(滚动条,新文物等等),如果你有面向客户的接口并且你收到的门票只包含了单词“X页面500错误”。

如果这个问题对于stackoverflow来说过于宽泛,请随时关闭它

1 个答案:

答案 0 :(得分:0)

如果您的数据库中发生了并发更新,并且您的数据库访问检查和写入方法不在一个事务中,那么您必须实现异常处理。所以我想说你可能会更好地实现彻底和稳定的异常处理。但总的来说回答这个问题非常困难,因为它总是取决于具体情况。