![]() |
1
10
嗯,你还没有告诉我们很多关于房子的事情…它是可写的吗?如果是这样,将验证放入setter,在
最少的
如果值为空,则记录日志-理想情况下抛出
如果它是以某种方式计算的,那就更难了——此时,您可能应该在getter和log中进行测试(以某种方式,您的客户很容易将信息返回给您),尽可能多地测试您认为相关的信息。 编辑:正如已经指出的,这可以应用于表达式中的任何级别-因此您很可能希望对每个级别应用相同类型的验证和日志记录。 |
![]() |
2
6
线
在以下任一情况下都将引发空引用异常
你说“设计不能为空”,但这是不可能从你的描述来证实的。尽管看起来很清楚,您的用户只是沿着一条路径通过您的程序,而这个路径在您的测试用例中没有涉及。
如果你不能发现你的设计中的缺陷,那么实际的方法是通过内部检查来扩展你的应用程序。我会推荐一个好的追踪系统和(很多)
|
![]() |
3
0
如何实例化对象?可以是Person对象为空吗?还是应用程序对象?这可以解释例外情况。 如果您找不到问题,我建议您向应用程序添加日志记录,并检查实例化对象的代码和使用它的代码,以查看在创建对象之前是否以某种方式访问这些对象。 另一个可能的问题可能是异常处理。确保您没有尝试捕获只接受异常的块。这些可能是一些真正头痛的根源。 不管怎样。这些只是建议。如果不了解你的系统,很难做出更好的猜测。 |
![]() |
4
0
一个非常试探性的猜测是,您对YR的编码没有一致的异常处理模式,而其他一些异常被抛出并被不适当地吞没,这使得执行线程到达一个运行代码的点,该点假设对象已被实例化,而实际上先前吞没或忽略的异常操作阻止了它被实例化,并导致它仍然为空。 |
![]() |
5
0
在不理解代码的情况下,很难猜测为什么会发生这种情况。典型的来源是
当我遇到类似的问题时,我最终向应用程序添加了工具。主要是日志记录( log4net 在我的例子中)和异常报告。最初我使用了assert,但是clr断言在生产中是一个灾难,因为它们弹出了需要用户交互的大中断消息框,完全不适合服务和后台运行的应用程序。因此,我更喜欢捕获异常,从异常上下文创建一个报告,并将报告发送回母舰进行分析。最终,我能够从那些异常报告中找到所有问题。我最终围绕这个概念在 http://bugcollect.com 并将它与log4net集成,这样我就可以从应用程序的所有部署(从所有客户机)中实时获取报告。 |
![]() |
Kryptonit364 · 在DataGrid中隐藏调整大小和选择列 2 年前 |
![]() |
hassan Ma · 从顶部将文本插入WPF文本块 2 年前 |
![]() |
Arijit · 移动画布内绘制的矩形 2 年前 |
![]() |
juraj14466 · C#WPF实时图表将点渲染为图像 2 年前 |