Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
3 / 3 / 0
Регистрация: 08.10.2010
Сообщений: 71
.NET 4.x

Проверка всех исключений

16.05.2012, 10:10. Показов 967. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
здравствуйте.
Собственно есть один блок try и несколько catch (с исключениями);
При возникновении нескольких исключений- показывается только одно. Как заставить показать все исключения?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
16.05.2012, 10:10
Ответы с готовыми решениями:

Обработка сразу всех исключений
С исключениями работать пока не приходилось, так что если вопрос мой наивен - пардона просим :) Возможно ли обработать сразу все...

Создать обработку всех исключений текущей сборки
Допустим что в данной сборке я вызвал MyException , мне надо сделать так чтобы эта ошибка была не фатальной для выполнения кода. С условием...

Один обработчик исключений для всех наследуемых классов
Есть абкстрактный класс: ClientInfo у него есть абкстрактный метод: public abstract void Process(); каким образом можно написать...

8
гроза ленивых студентов
 Аватар для znake
456 / 411 / 51
Регистрация: 27.03.2011
Сообщений: 823
16.05.2012, 10:27
а ты уверен в своих словах? из одного блока try в один момент времени может вылететь только один эксепшн. единственное что - в нем могут быть InnerException'ы, но это уже другой вопрос. и если тебе нужны они - то ищи их в свойстве InnerException полученного исключения.
0
Администратор
Эксперт .NET
 Аватар для tezaurismosis
9673 / 4825 / 763
Регистрация: 17.04.2012
Сообщений: 9,664
Записей в блоге: 14
16.05.2012, 10:41
Цитата Сообщение от blacksmithov Посмотреть сообщение
При возникновении нескольких исключений- показывается только одно
Если вы имеете в виду, что после обработки одного из исключений остальные не обрабатываются, то уберите из блока catch слово return
А ещё лучше напишите код
0
3 / 3 / 0
Регистрация: 08.10.2010
Сообщений: 71
16.05.2012, 11:38  [ТС]
Собственно код:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
private void MainForm_Load(object sender, EventArgs e)
        {
            try
            {
                //делаю тестовый запрос к сервису WCF
               proxyWCF.testClient();
 
                //выдергиваю из AD displayName
                searchDomain.SearchScope = SearchScope.Subtree;           
                string sAMAccountName = Environment.UserName;
                searchDomain.Filter = @"(sAMAccountName=" + sAMAccountName + ")";
                SearchResult result = searchDomain.FindOne();
                string displayName = searchDomain.FindOne().Properties["displayName"][0].ToString();
 
            }
            catch (System.Runtime.InteropServices.COMException ex1)//исключение недоступности LDAP
            {
                MessageBox.Show(ex1.ToString());
            }
            catch (System.ServiceModel.EndpointNotFoundException ex2) //исключение недоступности сервера wcf
            {
                MessageBox.Show(ex2.ToString());                                
            }
в итоге если сервис WCF незапущен и сервер dc тоже недоступен, то у меня выплывет единственное сообщение ex2.
А я хочу, чтобы оба исключения отобразились.
0
 Аватар для Дмитрий3241
660 / 530 / 137
Регистрация: 07.07.2011
Сообщений: 1,232
Записей в блоге: 6
16.05.2012, 13:08
blacksmithov, понимаете при первом же исключении следующий код не будет выполнен, ибо незачем так как исключение уже было дальше все пойдет не как задумано.
Рассмотри на примере наведение себе кружечки кофе.
У нас есть чайник ( с водой ), кофе и ложка для размешивания.
1. Засыпаем кофе в кружку, -> если нет кружки, то дальше мы уже не сможем налить воды и следовательно не сможем размешать.
2. Засыпаем кофе в кружку, -> если нет воды, то мы опять же не сможем размешать кофе.
2
3 / 3 / 0
Регистрация: 08.10.2010
Сообщений: 71
16.05.2012, 15:21  [ТС]
Цитата Сообщение от Дмитрий3241 Посмотреть сообщение
blacksmithov, понимаете при первом же исключении следующий код не будет выполнен, ибо незачем так как исключение уже было дальше все пойдет не как задумано.
Рассмотри на примере наведение себе кружечки кофе.
У нас есть чайник ( с водой ), кофе и ложка для размешивания.
1. Засыпаем кофе в кружку, -> если нет кружки, то дальше мы уже не сможем налить воды и следовательно не сможем размешать.
2. Засыпаем кофе в кружку, -> если нет воды, то мы опять же не сможем размешать кофе.
Ну раз такая пляска пошла то включим сюда еще и сахар:
Я могу кофе попить и с сахором и без него(если вдруг его не оказалось). И что мне теперь отказываться от кофе если у меня нет сахара, но есть чайник ( с водой ), кофе и ложка для размешивания?
0
Эксперт .NET
 Аватар для kolorotur
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
16.05.2012, 15:58
blacksmithov, так разбейте код на два блока try/catch: первый для проверки WCF, второй - для всего остального.
1
3 / 3 / 0
Регистрация: 08.10.2010
Сообщений: 71
16.05.2012, 16:35  [ТС]
Цитата Сообщение от kolorotur Посмотреть сообщение
blacksmithov, так разбейте код на два блока try/catch: первый для проверки WCF, второй - для всего остального.
В этом нет проблемы -видимо так и сделаю. Просто думал что есть особый способ/подход, ведь число исключений будет расти и количество блоков try/catch тоже. хотелось сохранить один try.

Добавлено через 1 минуту
Цитата Сообщение от tezaurismosis Посмотреть сообщение
Если вы имеете в виду, что после обработки одного из исключений остальные не обрабатываются, то уберите из блока catch слово return
А ещё лучше напишите код
тут я не понял что Вы имели ввиду? return я в принципе не писал...
0
Администратор
Эксперт .NET
 Аватар для tezaurismosis
9673 / 4825 / 763
Регистрация: 17.04.2012
Сообщений: 9,664
Записей в блоге: 14
16.05.2012, 16:42
Цитата Сообщение от blacksmithov Посмотреть сообщение
тут я не понял что Вы имели ввиду? return я в принципе не писал...
Я писал это до того, как увидел ваш код
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
16.05.2012, 16:42
Помогаю со студенческими работами здесь

После прохода всех исключений компилятор пишет что переменные не объявлены
Пишу на С# но соль не в этом static void Uravn() { string a,b,c; int flag=0; double d,sqrtd; double...

Проверка исключений
Здравствуйте форумчане, в общем я допилил свою программу, сама программа простая, но суть в том что нужно обработать все исключения:пуст ли...

@Transactional метод и проверка исключений
Имеется стандартный класс AccountingDAO для сохранения изменений аккаунтов. Так вот приложение переводит деньги с одного аккаунта на другой...

Проверка ввода посредством исключений
Надо обязательно использовать механизм исключений для проверки ввода строки. class wrongStringException{ }; ...

Обработка всех исключений автоматически
Всем еще раз дня доброго. Существует ли способ обработать приложением все исключения, которые я не обработал сам? Это нужно для того, что...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru