应用程序日志记录代码是否始终位于catch块中

时间:2011-08-09 12:20:46

标签: c# logging exception-handling

应用程序日志记录代码是否总是在catch块中? 例如,在try块中检查对象为null是否更好?如果是,则记录异常或捕获null引用异常并记录错误(警告)

5 个答案:

答案 0 :(得分:4)

  • 首先防止异常比在事后处理异常更好。
  • 如果空引用是真正的可能性,代码应该已经测试并适当地处理它。
  • 记录应尽可能与异常处理断开连接。实际上,您需要尽可能多地记录,然后让您的应用程序记录器确定实际上重要的内容。 (使用错误级别 - 信息,警告,错误)所以是的,您的catch块应该记录,但这绝对不是您记录的唯一地方。

*我确信有一些边缘情况,但事实并非如此,但这种情况非常罕见。

答案 1 :(得分:2)

拥有可以帮助您了解正在发生的事情,应用程序行为方式,正确跟踪,监控等等的日志总是很好的...但在哪里拥有它我认为它取决于您的应用程序和上下文。确保必须记录异常详细信息,以便您可以检查发生了什么,但是要在finally块或其他位置登录catch块,这取决于您的代码。

答案 2 :(得分:1)

始终是一个强有力的词,记录代码应该在需要的地方。在大多数情况下,都有记录类别。

**INFO**: General application information 
**DEBUG**: Information that may be helpful if trying to debug using the log.
**ERROR**: Error information.

我确定还有其他类别,但是你可以看到,在这3个情况下,ERROR日志记录可能只会在catch块中,而其他2可能真的在任何地方。

答案 3 :(得分:0)

在catch块中最好这样做,即使仅基于可读性。将错误处理与其他代码分开总是更好。

答案 4 :(得分:0)

我认为伐木是一个贯穿各领域的问题,因此我将其置于一个方面。您拥有的catch块越多,您需要编写的日志记录代码就越多。如果您可以将建议编写到异常中,则可以将该记录代码编写一次并将其保存在一个位置。

相关问题