未处理的C#例外

时间:2010-05-20 20:17:50

标签: c# exception

C#应用程序中未处理的异常会导致蓝屏死机吗?

6 个答案:

答案 0 :(得分:14)

除非您处理非内存资源(如原始内存访问),否则不会。 (在这种情况下,异常不太可能是原因)

.NET异常将被运行时环境捕获。你可以崩溃你的程序而不是操作系统。

根据我的经验,导致BSOD的唯一因素是坏驱动程序和硬件错误。(这当然不是BSOD原因的详尽列表,但这是我看的第一个地方。 )

答案 1 :(得分:3)

BSOD的唯一原因是硬件错误,操作系统错误或驱动程序错误。 .NET代码不能导致BSOD。

答案 2 :(得分:2)

没有;理想情况下,应该无法从C#引起BSOD。

向我们展示导致它的代码,我们会看看是否可以提供帮助。

答案 3 :(得分:2)

不,它不会。这并不是说你不可能使用C#程序导致BSOD,但如果你这样做,那不会是由于抛出了未处理的异常。

答案 4 :(得分:2)

是的,这是可能的,间接的。当您使用System.Management,System.Windows.Media,System.Drawing.Printing,System.IO.Ports等名称空间时,您将使用大量非托管代码。该代码可以发出设备驱动程序调用,这可能会触发设备驱动程序中的错误。接下来是蓝屏。

显然真正的问题不在托管代码中,它是一个糟糕的驱动程序。

但要直接回答这个问题:不,未处理的托管异常不会导致BSOD。

答案 5 :(得分:0)

您可以共享与您的驱动程序交互的代码吗?

无论哪种方式,看起来驱动程序本身都有错误:BSOD是内核中运行的代码(在这种情况下是驱动程序)中未处理的崩溃的结果。