繁体   English   中英

未处理的C#例外

[英]Unhandled C# Exceptions

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

除非你正在处理像原始内存访问这样的非托管资源。 (在这种情况下,异常不太可能是原因)

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

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

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

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

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

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

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM