调试类型初始值设定项中的异常

时间:2009-10-22 00:06:30

标签: c# visual-studio debugging

我有一个没有静态构造函数的静态类,但是有许多静态成员。首次使用该类时,我抛出一个TypeInitializationException。

我打破了CLR异常,我禁用了“Just My Code”。

问题是我在第一次使用这个类时才会遇到这个异常;我不打破失败的静态字段初始化程序。我当然可以删除静态成员,直到找到罪魁祸首,但有更简单的方法吗?

有没有人有关于调试静态字段初始化的提示?

2 个答案:

答案 0 :(得分:12)

单击Debug,Exceptions,(或按Ctrl + D,E)并告诉Visual Studio在抛出任何异常时中断。然后它会在抛出InnerException之前,在它被包装在TypeInitializationException之前中断,并且它将在抛出异常的行上中断。

或者,查看InnerException的调用堆栈,看看它匹配哪个字段。

或者,尝试在每个静态初始化器上设置断点;最后一次击中是抛出异常的那一次。

答案 1 :(得分:2)

我会尝试以下

  • 禁用我的代码:取消选中工具 - >选项 - >调试 - >只是我的代码
  • 打破第一次机会异常:调试 - >例外 - >检查CLR例外的抛出框

这会将您带到发生异常的直接位置。