59

我在调试模式下运行我的应用程序,我想手动抛出一个异常(即不是从代码中)。有没有办法做到这一点?

当然,throw new Exception("My forced exception");在命令或立即窗口中运行是行不通的。

编辑:我希望围绕我正在调试的代码的 try-catch 语句捕获异常。

4

4 回答 4

85

一种可能的方法是换行并手动将代码路径中的可为空变量更改为null恰好在对其进行操作之前。这将导致 aNullReferenceException被抛出。

于 2012-12-13T16:23:07.630 回答
12

您可以添加类似于以下的方法:

public static void ThrowAnException(string message)
{
    throw new ApplicationException(message);
}

然后,使用立即窗口,您可以调用ThrowAnException("Whoops")

于 2012-12-13T16:30:47.423 回答
1

如果您在单元测试的上下文中运行,并且您希望引发异常的点位于注入的接口或类的后面,则可以创建一个引发异常的模拟对象。

这样做的好处是,一旦您对复制错误感到高兴,您就可以为您的回归套件构建一个新的单元测试。

于 2018-02-21T15:53:06.800 回答
-3

在断点处尝试使用即时窗口。

于 2012-12-13T16:25:15.223 回答