静态构造函数和异常

时间:2011-01-02 15:25:13

标签: c# constructor

如果静态构造函数抛出异常并且未处理它会发生什么?

它会一直存在,直到应用程序域还活着吗?

3 个答案:

答案 0 :(得分:7)

静态构造函数中的未处理异常将包含在TypeInitializationException中。如果您使用的是.NET 2或更高版本,则未处理的异常将终止该进程。

答案 1 :(得分:0)

异常将传播,如果它没有被捕获,例如全局异常处理程序,它将简单地终止应用程序域。

答案 2 :(得分:0)

如果在静态构造函数中发生异常并且您没有捕获它,那么您将永远不会使用其静态方法,字段或属性,甚至无法创建其实例,否则它将导致TypeInitializationException。