Необработанные исключения C # - PullRequest
7 голосов
/ 21 мая 2010

Может ли необработанное исключение в приложении C # вызвать синий экран смерти?

Ответы [ 6 ]

14 голосов
/ 21 мая 2010

Нет, если вы не имеете дело с неуправляемыми ресурсами, такими как доступ к сырой памяти. (В этом случае исключение не является вероятной причиной)

.NET Исключения будут обнаружены средой выполнения. Вы можете разбить вашу ПРОГРАММУ, но не ОС.

По моему опыту, единственные вещи, которые вызывают BSOD, это плохие драйверы и аппаратные ошибки. (Это, конечно, не исчерпывающий список причин BSOD, но это первое место, которое я смотрю.)

3 голосов
/ 21 мая 2010

Единственными причинами для BSOD являются аппаратная ошибка, ошибка ОС или ошибка драйвера. Код .NET никогда не может вызвать BSOD.

2 голосов
/ 21 мая 2010

Да, это возможно, косвенно. Существует множество неуправляемых кодов, которые вы будете использовать при работе с такими пространствами имен, как System.Management, System.Windows.Media, System.Drawing.Printing, System.IO.Ports. Этот код может вызывать вызовы драйвера устройства, что может вызвать ошибку в драйвере устройства. Следующий экран синий.

Очевидно, что настоящая проблема не в управляемом коде, а в грязном драйвере.

Но чтобы ответить прямо на вопрос: нет, необработанное управляемое исключение не может вызвать BSOD.

2 голосов
/ 21 мая 2010

Нет, не будет. Это не значит, что вы не можете вызвать BSOD с помощью программы на C #, но если бы вы это сделали, это не произошло бы из-за создания необработанного исключения.

2 голосов
/ 21 мая 2010

Нет; в идеале не должно быть никоим образом , чтобы вызвать BSOD из C #.

Покажите нам код, который его вызывает, и мы посмотрим, сможем ли мы помочь.

0 голосов
/ 21 мая 2010

Можете ли вы поделиться кодом, который взаимодействует с вашим драйвером?

В любом случае, похоже, что здесь виноват сам драйвер: BSOD является результатом необработанного сбоя кода, работающего в ядре (в данном случае, вашего драйвера).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...