![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Спокойный псих
Участник клуба
Регистрация: 19.03.2013
Сообщений: 1,538
|
![]()
Тема не касается .NET, но касается C# и Visual Studio Ultimate 2013.
Довольно специфическая проблема: В главном файле проекта Windows Forms (Program.cs) есть строка "Application.Run(new Form1());". Эту строку я заключил в блок try. Проблема заключается в том, что блок Код:
Если же запустить программу вне отладчика и произойдёт исключение, необработанное внутри формы, то произойдёт крэш программы и "// вывод инфы по ошибке" просто не произойдёт, а исключение выпадет, как необработанное в принципе. Что делать ? Сразу отвечу на вопрос "Зачем мне обработчик вне формы ?": если кратко - то я просто не знаю, в каком месте программы может произойти ошибка, так как вся работа программы завязана на работе с внешними данными. И если набор внешних данных не соответствует тем, которые программа пытается обработать - вероятность возникновения ошибки большая. По большому счёту я должен выяснять все возможные места, где может произойти ошибка, но таких мест в программе просто ОЧЕНЬ много, и тестировать всевозможные варианты подмены данных и прописывать поведение программы при выявлении каждого рода подмены - просто не целесообразно. В моём случае лучше сделать обработку таких ошибок из ряда "необратимости", то есть программа не должна знать, является ли ошибка обратимой, а просто напросто вывести ошибку и закрыться. Это только краткое описание причины моих действий. Ещё раз вопрос: как сделать так, что бы во время выполнения программы вне отладчика выполнялся всем обработчикам обработчик исключений ??? --- Более подробное описание --- Программа построена из нескольких форм, и код создания каждой формы выглядит примерно так: Код:
Но на практике получается, что всё вышеописанное выполняется только в отладчике, и программа корректно завершается, а если запускать программу вне отладчика - при возникновении исключения в конструкторе исключение выпадает необработанным уже в блоке Код:
Ну и да: всё это проверено специально созданными ошибками в коде, и все "необработанные" исключения выпадают согласно тем ошибкам, которые были допущены.
Подпись ? Не, не слышал ...
Последний раз редактировалось OmegaBerkut; 06.07.2014 в 11:43. Причина: Дополнительная информация |
![]() |
![]() |
![]() |
#2 |
Подтвердите свой е-майл
Регистрация: 29.08.2012
Сообщений: 4,011
|
![]() |
![]() |
![]() |
![]() |
Опции темы | Поиск в этой теме |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Обработка исключений | David Villa | Общие вопросы C/C++ | 3 | 03.03.2013 19:53 |
Обработка исключений с пoмощью структурированной обработки исключений | Smart | Visual C++ | 3 | 01.11.2012 15:38 |
C# обработка исключений | NeoX_2011 | Помощь студентам | 3 | 19.03.2012 01:04 |
Обработка исключений | Ckomoroh | Общие вопросы Delphi | 6 | 21.03.2011 08:52 |
Обработка исключений try... except | Kati | Помощь студентам | 5 | 07.03.2010 10:18 |