Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.93/15: Рейтинг темы: голосов - 15, средняя оценка - 4.93
 Аватар для HardLogin
54 / 54 / 2
Регистрация: 20.01.2013
Сообщений: 832
Записей в блоге: 1

Не пойму момент (обработка исключений)

10.02.2013, 22:25. Показов 3208. Ответов 23
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Вот код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
try
    {
        Application->Initialize();
        Application->CreateForm(__classid(TForm1), &Form1);
        Application->Run();
    }
    catch (Exception &exception)
    {
        Application->ShowException(&exception);
    }
    catch (...)
    {
        try
        {
            throw Exception("");
        }
        catch (Exception &exception)
        {
            Application->ShowException(&exception);
        }
    }
Я так понимаю:
что в первом блоке кетч обрабатывается исключения которые "знает" класс exception. А во втором все остальные. Но не понятным мне способом.
C++
1
throw Exception("");
тут генерируется исключение с пустой строкой тгда если сработает это
C++
1
Application->ShowException(&exception);
то выдатся пустое сообщение да или поправте меня? Я только недавно выучил блоки try catch.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
10.02.2013, 22:25
Ответы с готовыми решениями:

Обработка исключений. Как организовать общий обработчик исключений?
У меня есть последовательность вызова методов для внесения данных в таблицу БД. Сам метод внесения данных. Он генерирует исключение ...

Обработка исключений с пмощью структурированной обработки исключений
Есть функция, которая определенным образом работает с файлами,но при работе с файлами "не подходящего" типа вызывается...

Не пойму один момент по проектированию
Допустим, есть классы А и В. Файл А.h инклудит файл B.h. Но в классе А есть переменная, которая нужна классу В, однако файл В.h не...

23
 Аватар для BRcr
4043 / 2333 / 292
Регистрация: 03.02.2011
Сообщений: 5,066
Записей в блоге: 10
10.02.2013, 23:15
Почти все верно, за исключением твоего мнения о "познаниях" класса Exception. Просто с помощью throw можно "бросить" не только экземпляр класса Exception, но и любой другой объект. Вообще любой.
1
 Аватар для HardLogin
54 / 54 / 2
Регистрация: 20.01.2013
Сообщений: 832
Записей в блоге: 1
10.02.2013, 23:29  [ТС]
тоесть как это?
0
 Аватар для BRcr
4043 / 2333 / 292
Регистрация: 03.02.2011
Сообщений: 5,066
Записей в блоге: 10
10.02.2013, 23:34
"То есть как" что? В угадай мелодию я не играю - задавай конкретные вопросы.
1
 Аватар для HardLogin
54 / 54 / 2
Регистрация: 20.01.2013
Сообщений: 832
Записей в блоге: 1
11.02.2013, 00:15  [ТС]
Цитата Сообщение от BRcr Посмотреть сообщение
Просто с помощью throw можно "бросить" не только экземпляр класса Exception, но и любой другой объект. Вообще любой.
Вот это пожалуйста поподробней.
0
Эксперт С++
 Аватар для Avazart
8484 / 6151 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
11.02.2013, 00:47
Цитата Сообщение от HardLogin Посмотреть сообщение
то выдатся пустое сообщение да или поправте меня? Я только недавно выучил блоки try catch.
Вполне возможно, а возможно выдаст что-то другое нужно смотреть что в классе Exception, возможно он как-то иначе обработaет случай с ""
1
 Аватар для BRcr
4043 / 2333 / 292
Регистрация: 03.02.2011
Сообщений: 5,066
Записей в блоге: 10
11.02.2013, 07:05
Можно, конечно; все уже написано до нас - Exceptions.
1
 Аватар для HardLogin
54 / 54 / 2
Регистрация: 20.01.2013
Сообщений: 832
Записей в блоге: 1
11.02.2013, 09:15  [ТС]
Цитата Сообщение от Avazart Посмотреть сообщение
Вполне возможно, а возможно выдаст что-то другое нужно смотреть что в классе Exception, возможно он как-то иначе обработaет случай с ""
А разве не будет странным для пользователя пустое сообщение??? И почему может быть другое искл.?
0
Эксперт С++
 Аватар для Avazart
8484 / 6151 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
11.02.2013, 12:10
Цитата Сообщение от BRcr Посмотреть сообщение
Можно, конечно; все уже написано до нас - Exceptions.
То STL а не VCL тип исключения.
1
Эксперт С++
 Аватар для Avazart
8484 / 6151 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
11.02.2013, 12:17
Цитата Сообщение от HardLogin Посмотреть сообщение
А разве не будет странным для пользователя пустое сообщение??? И почему может быть другое искл.?
Да странно...
Это по тому что теоретически в все исключения должно словить catch (Exception &exception)...
А в непредусмотренных ошибках - catch (...).
Когда ошибка "не предусмотрена" то и сказать пользователю в принципе нечего...
Миниатюры
Не пойму момент (обработка исключений)  
1
 Аватар для HardLogin
54 / 54 / 2
Регистрация: 20.01.2013
Сообщений: 832
Записей в блоге: 1
11.02.2013, 13:18  [ТС]
ну хорошо допустим а почему нельзя вот так
C++
1
2
3
4
catch (...)
    {
        //тут выдать сообщение что неизвестная ошибка(просто я еще не прошел как это сделать)
    }
в чем разница?
0
Эксперт С++
 Аватар для Avazart
8484 / 6151 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
11.02.2013, 13:32
чЕ та сам не понимаю...
1
 Аватар для HardLogin
54 / 54 / 2
Регистрация: 20.01.2013
Сообщений: 832
Записей в блоге: 1
11.02.2013, 13:34  [ТС]
тоже не знаете?
0
 Аватар для BRcr
4043 / 2333 / 292
Регистрация: 03.02.2011
Сообщений: 5,066
Записей в блоге: 10
11.02.2013, 13:42
HardLogin, этот код из первого поста - это эталон какой-то что ли? Кто-то решил так написать, а мы давайте щас все будем натужно думать, и зачем же он написал именно так?..
Никто не мешает выдать сообщение произвольного содержания, хоть о погоде за окошком.
1
Эксперт С++
 Аватар для Avazart
8484 / 6151 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
11.02.2013, 13:44
Цитата Сообщение от BRcr Посмотреть сообщение
Кто-то решил так написать,
Кто-то это разработчики... и походу они тут нахалтурили... хотя с другой стороны таких ситуаций с перехватом в catch(...) не должно быть в принципе.
1
Модератор
 Аватар для vxg
3406 / 2177 / 354
Регистрация: 13.01.2012
Сообщений: 8,444
11.02.2013, 14:45
при возникновении исключения не принадлежащего классу Exception Они что бы не засорять текст программы кидают исключение класса Exception и тут же ловят и показывают его. вместо пустой строки вы можете ввести свое сообщение например "непредвиденное исключение". по какой-то причине они не стали осчастливливать код этим текстом и оставили это вам
1
 Аватар для HardLogin
54 / 54 / 2
Регистрация: 20.01.2013
Сообщений: 832
Записей в блоге: 1
11.02.2013, 16:20  [ТС]
кто они? вы имеете ввиду мой код?
0
Эксперт С++
 Аватар для Avazart
8484 / 6151 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
11.02.2013, 16:22
Разработчики Borland ныне Embercadero
1
 Аватар для HardLogin
54 / 54 / 2
Регистрация: 20.01.2013
Сообщений: 832
Записей в блоге: 1
11.02.2013, 16:23  [ТС]
хотя я вас понял но опять же почему бы просто не сделать так
C++
1
2
3
4
catch (...)
    {
        //тут выдать сообщение что неизвестная ошибка(просто я еще не прошел как это сделать)
    }
я вот думал над этим возможно изза того что при таком коде
C++
1
2
3
4
5
6
7
8
9
10
11
catch (...)
    {
        try
        {
            throw Exception("");
        }
        catch (Exception &exception)
        {
            Application->ShowException(&exception);
        }
    }
возможно не только появляется сообщение но и чтото еще делается внутри функции. Это возможно?
0
Эксперт С++
 Аватар для Avazart
8484 / 6151 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
11.02.2013, 16:27
Цитата Сообщение от HardLogin Посмотреть сообщение
возможно не только появляется сообщение но и чтото еще делается внутри функции. Это возможно?
Опять нужно смотреть в класс Exeption, но сомневаюсь....
Тут просто по видимому дается возможность доработки этого случая разработчиком программы
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
11.02.2013, 16:27
Помогаю со студенческими работами здесь

Обработка исключений
Здравствуйте! Есть код, который записывает интернет страницу в 2 файла через промежуточный массив(буфер). public static void...

Обработка исключений
Здравствуйте. Мне поставлена задача - сделать математически простую программу (перевод одних единиц в другие), но с непробиваемой защитой...

Обработка исключений
Здравствуйте!!! У меня есть несколько классов в них обрабатывается вводимая с формы информация. Например if (!Int64.TryParse(value,...

Обработка исключений
Есть задания 1.Написать пример программы по обработке различных типов исключений. Программа должна быть проектом Windows Form и...

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


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru