Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 29.01.2020, 20:39   #1
Kuzya69
Пользователь
 
Регистрация: 20.07.2013
Сообщений: 42
По умолчанию Как получить числовое значение FirstChanceException исключения?

Есть приложение работающее с виртуальным ком-портом. И когда устройство, подключенное к порту перезагружается, ком-порт "отваливается". Для последующего включения нужно закрыть недействительный ком-порт, что вызывает в конечном итоге необрабротанное исключение System.ObjectDisposedException, которое валит программу вообще. Вобщем, это все не очень относится к вопросу, но я кажется нашел выход из ситуации. Именно в обработчике исключения FirstChanceException, которое возникает при закрытии недействительного порта, создать паузу, чтобы дать потоку порта завершиться. Но хочется отделить именно это исключение, а не делать паузу на все остальные исключения. Отсюда вопрос, как получить числовое значение возникающего именно в нужный момент исключения? Для исключений типа Exception, я нашел как это сделать, но это исключение, FirstChanceException, не выдает числовое значение (дает null), если его обработать как "FirstChanceException.Exception ".
Kuzya69 вне форума Ответить с цитированием
Старый 29.01.2020, 21:54   #2
Desc
Участник клуба
 
Аватар для Desc
 
Регистрация: 21.11.2007
Сообщений: 1,063
По умолчанию

Похоже на какое-то де-жа-вю. Но тем не менее спрошу?
Ссылки:
>>Практическое руководство. Получение уведомлений о первом этапе обработки исключений
>>AppDomain.FirstChanceException Событие,
не, не помогли?
I am not a wizard, I am just learning.
Desc вне форума Ответить с цитированием
Старый 29.01.2020, 22:01   #3
Kuzya69
Пользователь
 
Регистрация: 20.07.2013
Сообщений: 42
По умолчанию

Да я получаю это событие AppDomain.FirstChanceException. Но мне нужно в его обработчике выделить только то, у которого значение HResult имеет определенное значение. Но свойство HResult в NetFraemwork 4.0 protected, поэтому компиллятор ругается на такую запись:
Код:
uint iErr = e.Exception.HResult;
Поэтому интересует вопрос, можно-ли какими-то другими методами получить это значение?
Kuzya69 вне форума Ответить с цитированием
Старый 30.01.2020, 00:20   #4
Desc
Участник клуба
 
Аватар для Desc
 
Регистрация: 21.11.2007
Сообщений: 1,063
По умолчанию

Цитата:
Сообщение от Kuzya69 Посмотреть сообщение
И когда устройство, подключенное к порту перезагружается, ком-порт "отваливается". Для последующего включения нужно закрыть недействительный ком-порт, что вызывает в конечном итоге необрабротанное исключение System.ObjectDisposedException, которое валит программу вообще.
В ходе таких экспериментов, аппаратных нюансов не избежать. В подобных случаях необходимо комбинировать аппаратную доработку девайса и доработку ПО интерфейса.
Иногда приходится производить полній "ресет" ПК и девайса для продолжения исследований. Так вот. Мир физики.
I am not a wizard, I am just learning.
Desc вне форума Ответить с цитированием
Старый 30.01.2020, 00:43   #5
Kuzya69
Пользователь
 
Регистрация: 20.07.2013
Сообщений: 42
По умолчанию

Ну сам девайс я не доработаю, это диагностический адаптер, фуллфлеш для него не я писал. А вот управляющую программу могу. Поэтому и экспериментирую.
Нет, перезагружать комп не требуется, все и так работает, я через функции SetupDiSetClassInstallParams и SetupDiCallClassInstaller, переподключаю устройство к системе, и все потом работает нормально, и не требует полной перезагрузки ОС.
Kuzya69 вне форума Ответить с цитированием
Старый 30.01.2020, 01:05   #6
Desc
Участник клуба
 
Аватар для Desc
 
Регистрация: 21.11.2007
Сообщений: 1,063
По умолчанию

Цитата:
Сообщение от Kuzya69 Посмотреть сообщение
переподключаю устройство к системе, и все потом работает нормально, и не требует полной перезагрузки ОС.
Не стоит так категорично утверждать.
Часты случаи когда, в ходе экспериментов с аппаратной частью приходится перезагружать всю оснастку.
I am not a wizard, I am just learning.
Desc вне форума Ответить с цитированием
Старый 30.01.2020, 01:12   #7
Kuzya69
Пользователь
 
Регистрация: 20.07.2013
Сообщений: 42
По умолчанию

Я поэтому и утверждаю, что проверено, все работает. И работает как надо. Единственное, что может попасться исключение, которое должно будет свалить прогу, а она продожит работать, и не факт, что как надо. Я же не профи, могу где-то и косяки допустить. К тому-же приложение под AnyCPU, и пытаюсь сделать его как минимум под WinXP и под Win7,8,10. Поэтому и хочу в обработчике отфильтровать только одно исключение, по значению HResult.

Последний раз редактировалось Kuzya69; 30.01.2020 в 01:15.
Kuzya69 вне форума Ответить с цитированием
Старый 30.01.2020, 01:47   #8
Desc
Участник клуба
 
Аватар для Desc
 
Регистрация: 21.11.2007
Сообщений: 1,063
По умолчанию

Kuzya69, Вы в какой среде ведёте разработку?
I am not a wizard, I am just learning.
Desc вне форума Ответить с цитированием
Старый 30.01.2020, 01:50   #9
Kuzya69
Пользователь
 
Регистрация: 20.07.2013
Сообщений: 42
По умолчанию

Пишу на C#, NetFraemwork4.0, AnyCPU, Windows7. Студия Visual C# 2015. Microsoft Visual Studio Community 2015 Версия 14.0.25431.01 Update3

Последний раз редактировалось Kuzya69; 30.01.2020 в 01:53.
Kuzya69 вне форума Ответить с цитированием
Старый 30.01.2020, 02:02   #10
Desc
Участник клуба
 
Аватар для Desc
 
Регистрация: 21.11.2007
Сообщений: 1,063
По умолчанию

Цитата:
Сообщение от Kuzya69 Посмотреть сообщение
И когда устройство, подключенное к порту перезагружается, ком-порт "отваливается".
Он зависает (порт), рестарт всей ОСи и ре-коннект порта как правило решает проблему, по крайней мере на этапе разработки.
I am not a wizard, I am just learning.
Desc вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
перевести tm в int или другое числовое значение bambarbia Общие вопросы C/C++ 2 27.12.2012 09:55
Вывести результат (числовое значение) halloman Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 1 06.06.2011 07:56
Вводимое числовое значение для прозрачности skyotch JavaScript, Ajax 1 09.03.2011 10:28
Запись в числовое значение текст MRI Общие вопросы C/C++ 4 31.10.2010 09:59
текстовое значение месяца, перевести в числовое segail Microsoft Office Excel 3 08.04.2010 23:42