所以我收到空引用错误(通过我的电子邮件中的Log4Net获取)。 标准。
分析: - 无法在localhost上重现 - 无法在遥控器上重现 - 来自澳大利亚的客户收到错误(有些是,有些没有)
我能做些什么以某种方式弄清楚发生了什么? 我知道哪种方法会抛出错误,现在我尝试将旧学校尝试捕获并在捕获时向我发送对象的值。
还有其他什么可以处理这些恼人的事情吗?
答案 0 :(得分:-1)
我认为来自SOLID原则的一件事在这种情况下特别有用 - 单一责任原则。
只要你避免使用两百行方法,就可以将代码划分为小的,原子的,可测试的单元,即使没有详细的日志,也很容易确定代码的哪一部分会引发异常。
我认为“部署调试版本”,“提高日志级别”的建议并不总是可行的,因为软件部署通常非常复杂(并且提高日志记录级别会导致一些有趣的影响,例如将日志文件设置为10GB大小)这是申请上线的一分钟,这几乎是不可能完成的。
使用Resharper是跟踪可能的空引用异常的另一种可能性,因为它建议并在可能出现此类异常时为所有行加下划线。
您还可以使用[NotNull]
属性修饰参数 - 但是当参数为null导致异常时就是这种情况。