Frage Nicht behandelte C # -Ausnahmen


Kann eine nicht behandelte Ausnahme in einer C # -Anwendung einen blauen Bildschirm des Todes verursachen?


7
2018-05-20 20:17


Ursprung


Antworten:


Es sei denn, Sie haben mit nicht verwalteten Ressourcen wie dem Speicherzugriff zu tun. (In diesem Fall ist die Ausnahme wahrscheinlich nicht die Ursache)

.NET-Ausnahmen werden von der Laufzeitumgebung abgefangen. Sie können Ihr PROGRAMM aber nicht das OS zum Absturz bringen.

Nach meiner Erfahrung sind die einzigen Dinge, die BSODs verursachen, schlechte Treiber und Hardwarefehler. (Dies ist natürlich keine umfangreiche Liste der Ursachen von BSOD, aber das ist der erste Ort, den ich suche.)


14
2018-05-20 20:19



Die einzigen Ursachen für einen BSOD sind Hardwarefehler, Betriebssystemfehler oder Treiberfehler. .NET-Code kann niemals einen BSOD verursachen.


3
2018-05-20 20:27



Nein; idealerweise sollte es sein auf keinen Fall um einen BSOD von C # zu verursachen.

Zeigen Sie uns den Code, der das verursacht, und wir werden sehen, ob wir Ihnen helfen können.


2
2018-05-20 20:18



Nein, würde es nicht. Das bedeutet nicht, dass Sie möglicherweise keinen BSOD mit einem C # -Programm verursachen könnten, aber wenn Sie dies tun würden, wäre dies nicht auf eine nicht behandelte Ausnahme zurückzuführen.


2
2018-05-20 20:19



Ja, es ist möglich, indirekt. Es gibt viel nicht verwalteten Code, den Sie verwenden, wenn Sie mit Namespaces wie System.Management, System.Windows.Media, System.Drawing.Printing, System.IO.Ports arbeiten. Dieser Code kann Gerätetreiberaufrufe auslösen, die einen Fehler im Gerätetreiber auslösen können. Blauer Bildschirm ist der nächste.

Offensichtlich liegt das eigentliche Problem nicht im verwalteten Code, sondern in einem miesen Treiber.

Aber um die Frage direkt zu beantworten: Nein, eine unbehandelte gemanagte Ausnahme kann keinen BSOD verursachen.


2
2018-05-20 20:42



Können Sie den Code teilen, der mit Ihrem Treiber interagiert?

Wie auch immer, es sieht so aus, als wäre hier der Treiber selbst schuld: Ein BSOD ist das Ergebnis eines unbehandelten Programmabsturzes im Kernel (in diesem Fall Ihr Treiber).


0
2018-05-20 20:39