Всякий раз, когда пользователь сообщает об ошибке, напримерКак следует диагностировать SEHException ошибки - Внешний компонент бросил исключение
System.Runtime.InteropServices.SEHException - Внешний компонент бросил исключение?
есть ли что-нибудь, что я, как программист, может сделать, чтобы определить причину?
Сценарий: один пользователь (используя программу, написанную моей компанией) сообщил об этой ошибке. Это может быть или не быть одной ошибкой. Они упомянули, что в прошлом месяце компьютер дважды «переставал работать». Я узнал из опыта, чтобы не воспринимать это описание слишком буквально, поскольку обычно это означает, что кто-то, связанный с компьютером, работает не так, как ожидалось. Они не смогли дать мне более подробную информацию, и я не смог найти никаких зарегистрированных ошибок. Следовательно, это может быть или не быть этой ошибкой.
Из трассировки стека фактическая ошибка возникла при построении класса, который напрямую не вызывает какой-либо код взаимодействия, но, возможно, осложняется тем фактом, что этот объект может быть частью списка, привязанного к базе данных DevExpress Grid.
Ошибка была «поймана» необработанной процедурой исключения, которая обычно закрывает программу, но имеет возможность игнорировать и продолжать. Если они решили игнорировать ошибку, программа продолжала работать, но ошибка повторилась, когда эта процедура была запущена в следующий раз. Однако это не произошло после закрытия и перезапуска нашего приложения.
Компьютер, о котором идет речь, похоже, не подвергался стрессу. Он работает в Vista Business, имеет 2 ГБ памяти, и, согласно Диспетчеру задач, он использует примерно половину от того, что с нашим приложением составляет около 200 МБ.
Существует еще одна информация, которая может быть или не быть релевантной. Другая часть той же программы использует компонент третьей стороны, которая фактически является DotNet обертка вокруг родной DLL и этот компонент не имеет известную проблему, где очень редко, вы получите
Попытка чтения или записи в защищенную память. Это часто свидетельствует о том, что другая память повреждена.
Производители компонентов утверждают, что это было исправлено в последней версии их компонента, которую мы используем самостоятельно, но это еще не было предоставлено клиенту ,
Учитывая, что последствия ошибки низки (никакая работа не потеряна и перезагрузка программы и возвращение туда, где они занимают всего лишь минуты), и учитывая, что клиент скоро получит новую версию (с обновленный сторонний компонент), я, очевидно, могу скрестить пальцы и надеюсь, что ошибка не повторится.
Но есть ли что-нибудь еще, что я могу сделать?
StackTrace не упоминает DevExpress нигде, а просто мой класс.Вам нужно будет проверить, что такое ErrorCode. – sgmoore
В этом случае попытайтесь выяснить, что именно забросило сообщение об ошибке. –