0

我正在使用 NUNIT 运行此测试用例,并将 NUNIT 附加到 Visual Studio 调试器(调试 ---> 附加到进程 ---> 选择 nunit.exe)。

我期待语句“抛出新异常(“发生异常1!”);“将控件移动到catch块中,但控件不会跳转到“catch”,而是跳转到method2()。

当我只运行 nunit 测试用例而不将 nunit.exe 附加到 Visual Studio 调试器时,代码运行正常。

public void test()
{
try
            {
                method1();
                if (condition1)
                {
                    throw new Exception("Exception 1 occured!");
                }

                method2();  
                if (condition2)
                {
                    throw new Exception("Exception 2 occured!");
                }

                method3();
                if (condition3)
                {
                    throw new Exception("Exception 3 occured!");
                }

            }
            catch (Exception Ex)  <---- Exceptions thrown above are caught here
            {
                logMessage(E.Message);
                throw;                  
            }                   
}
4

1 回答 1

1

Visual Studio 可能设置为中断所有异常,而不仅仅是未捕获的异常。因此,当它检测到您抛出异常时它会停止。在某些情况下,Visual Studio 不会出现在引发异常的行上中断,而是突出显示即将运行的下一行代码。

如果您继续单步执行代码,您应该会看到它进入catch下一个块。

于 2012-05-15T23:24:25.577 回答