簡體   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