异常处理实践顶级与每个功能

l46*_*kok 4 .net c# exception

我见过几种异常处理方法.我见过的两种最常见的模式是:

  • 尝试捕获每个函数,记录异常并重新抛出
  • 尝试捕获最顶层(如主函数),记录异常并重新抛出

如果有一个更好的做法?或者你会选择一种方法而不是另一种方式?

小智 6

这取决于您的应用程序,并且是设计选择,但选项1非常混乱.您应该只捕获您准备处理的异常,而不是随意捕获每个异常.在大多数语言中,异常将有一个堆栈跟踪供您查看,因此不需要在每个级别进行日志记录.当我说某种方式处理可能是记录和重新抛出,或者它可能是记录时,通知用户某些错误,并继续运行

作为旁注,您不应该在代码中使用异常作为逻辑.如果您发现自己使用try catch块作为流量控制,那么您应该考虑重新设计.例外就是这样,例外.