Resharper StackOverflowException

时间:2018-08-24 08:02:29

标签: resharper xunit

有时,当我运行单元测试时,测试运行器会抛出StackOverflowException。有没有办法查看哪个测试可能导致问题。因为我无法找出问题所在。

有什么提示吗?还是导致此问题的一般原因?

1 个答案:

答案 0 :(得分:0)

StackOverflowExceptions的MSDN页面上:

  

在.NET Framework 1.0和1.1中,您可以捕获StackOverflowException对象(例如,从无限制的递归中恢复)。从.NET Framework 2.0开始,您无法使用try / catch块捕获StackOverflowException对象,并且默认情况下终止相应的进程。因此,您应该编写代码以检测并防止堆栈溢出。例如,如果您的应用程序依赖于递归,请使用计数器或状态条件终止递归循环。下面的示例使用一个计数器来确保对Execute方法的递归调用次数不超过MAX_RECURSIVE_CALLS常量定义的最大值

因此,这也使得Resharper也很难抓住StackOverflowException。您应该检查代码以查看是否存在无穷的递归调用,例如方法,函数,属性。除此之外,您可以尝试使用我共享的MSDN链接中的代码。但是您别无选择。