PL/SQL中"当其他人为空"时有什么不好?

Rom*_*las 5 plsql

我刚刚阅读了这个问题,解决方案指出:

您不知道自己得到NO_DATA_FOUND异常这一事实表明您已经犯了PL/SQL开发人员犯过的最大错误之一:

EXCEPTION
    -- Never do this in real code!!!
   WHEN OTHERS THEN NULL;
END;
Run Code Online (Sandbox Code Playgroud)

你能解释一下这句话中的错误是什么,你会怎么做才能避免这样做......

Mat*_*son 14

问题是,您正在捕获所有异常,然后忽略它们.你什么时候出错都不会知道.

  • 一句话:如果您不关心流程是否失败,那么您不关心流程是否成功 - 那么为什么首先浪费资源来完成 - 完全删除代码. (13认同)
  • @Matthew:我不同意.有许多完全有效的场景,您希望捕获所有异常并忽略它们.是否记录它们取决于您.我确实同意你想要做一些日志记录的9次,但是如果我在经常使用的低级API中做一些最好的代码,那么我可能会跳过日志记录的开销. . (3认同)
  • @darreljnz:然后有一天你会为什么事情失败而摸不着头脑,并且要添加调试代码,或者通过调试器找到它失败的地方.可能会有非常有限的情况,我怀疑它更像是999/1000而不是9/10. (3认同)