| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Общие вопросы по .NET и C# > C# - получение кода системной ошибки |
| Автор: valent_N 3.1.2006, 15:18 |
| Здравствуйте! C#-программа должна обрабатывать ошибки с учетом их кода. Какой культурный способ существует для получения кода системной ошибки и сброса ее, аналогично тому, как это позволяют сделать Win32 API-функции GetLastError() и SetLastError(...)? Или, все же, надо вызывать именно их, обеспечив для них соответствующие прототипы? Или же надо прибегнуть к исключению? Как тогда получить из экземпляра исключения код ошибки? - я не смог найти в MSDN такую информацию. Большое Спасибо |
| Автор: Void 3.1.2006, 15:23 |
| Посмотрите на метод System.Runtime.InteropServices.Marshal.GetLastWin32Error и класс исключения System.ComponentMode.Win32Exception. |
| Автор: WTF 3.1.2006, 15:30 | ||
Не совсем понятно о каких системных ошибках идет речь. Наиболее распространенные ошибки реализованы в виде исключений (exceptions). Например:
Если стандартные классы исключений по како-то причине тебе не подходят - у класса System.Exception есть свойсво HRESULT который содержит код ошибки. Сбрасывать ошибку не надо. |
| Автор: Exception 3.1.2006, 15:53 | ||||
Это он говорит о стандартных ошибках Win32. Полностью согласен с Void. А вообще не пойму, что мешает пользоваться
? |
| Автор: Void 3.1.2006, 15:55 | ||||
Читай документацию на Marshal.GetLastWin32Error
|
| Автор: valent_N 3.1.2006, 16:04 | ||
Очень всем признателен за внимание к моему вопросу. Я с Вашей помощью смог разобраться и получить полезную информацию, которую сам не смог найти.
Хотелось узнать, какой метод более рационален. Большущее ВСЕМ СПАСИБО!!! |
| Автор: Exception 3.1.2006, 16:05 |
| А SetLastError тама разве есть? |
| Автор: arilou 4.1.2006, 13:33 | ||
А SetLastError нужен для апишных ф-ций. Для .NET приложений не нужен. |
| Автор: redig 14.2.2007, 06:29 | ||||
Я так и не понял из этого топика как получить код ошибки. у меня например такая ситуация: Вываливаются ошибки: 14.02.2007 12:05:48|Ошибка OutSocket() : Object reference not set to an instance of an object. 14.02.2007 12:06:46|Ошибка OutSocket() : Удаленный хост принудительно разорвал существующее подключение на одном Exception-e:
Тут говорили про HResult, в MSDN-е не понятно написано, если кто знает, покажите пожалуйста примером как вытащить из Exception-а код ошибки. |