Unbehandelte C # -Ausnahmen

7

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

    
Jim Fell 20.05.2010, 20:17
quelle

6 Antworten

14

Nicht, es sei denn, Sie beschäftigen sich mit nicht verwalteten Ressourcen wie dem Rohspeicherzugriff. (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 Hardware-Fehler. (Dies ist natürlich keine umfangreiche Liste der Ursachen von BSOD, aber das ist der erste Ort, den ich sehe. )

    
Aren 20.05.2010, 20:19
quelle
3

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

    
Stephen Cleary 20.05.2010 20:27
quelle
2

Nein; Idealerweise sollte es keine Möglichkeit geben, einen BSOD von C # zu verursachen.

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

    
quelle
2

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 getan hätten, wäre dies nicht auf eine nicht behandelte Ausnahme zurückzuführen.

    
Eric Petroelje 20.05.2010 20:19
quelle
2

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, es ist ein mieser Treiber.

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

    
Hans Passant 20.05.2010 20:42
quelle
0

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).

    
Rich Turner 20.05.2010 20:39
quelle

Tags und Links