如何解决远程应用程序null对象引用,何时无法重现?

时间:2015-05-11 06:53:42

标签: c# debugging

所以我收到空引用错误(通过我的电子邮件中的Log4Net获取)。 标准。

分析: - 无法在localhost上重现 - 无法在遥控器上重现 - 来自澳大利亚的客户收到错误(有些是,有些没有)

我能做些什么以某种方式弄清楚发生了什么? 我知道哪种方法会抛出错误,现在我尝试将旧学校尝试捕获并在捕获时向我发送对象的值。

还有其他什么可以处理这些恼人的事情吗?

1 个答案:

答案 0 :(得分:-1)

我认为来自SOLID原则的一件事在这种情况下特别有用 - 单一责任原则

只要你避免使用两百行方法,就可以将代码划分为小的,原子的,可测试的单元,即使没有详细的日志,也很容易确定代码的哪一部分会引发异常。

我认为“部署调试版本”,“提高日志级别”的建议并不总是可行的,因为软件部署通常非常复杂(并且提高日志记录级别会导致一些有趣的影响,例如将日志文件设置为10GB大小)这是申请上线的一分钟,这几乎是不可能完成的。

使用Resharper是跟踪可能的空引用异常的另一种可能性,因为它建议并在可能出现此类异常时为所有行加下划线。

您还可以使用[NotNull]属性修饰参数 - 但是当参数为null导致异常时就是这种情况。