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

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

10.02.2013, 22:25. Показов 3267. Ответов 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
8488 / 6155 / 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
8488 / 6155 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
11.02.2013, 12:10
Цитата Сообщение от BRcr Посмотреть сообщение
Можно, конечно; все уже написано до нас - Exceptions.
То STL а не VCL тип исключения.
1
Эксперт С++
 Аватар для Avazart
8488 / 6155 / 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
8488 / 6155 / 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
8488 / 6155 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
11.02.2013, 13:44
Цитата Сообщение от BRcr Посмотреть сообщение
Кто-то решил так написать,
Кто-то это разработчики... и походу они тут нахалтурили... хотя с другой стороны таких ситуаций с перехватом в catch(...) не должно быть в принципе.
1
Модератор
 Аватар для vxg
3409 / 2180 / 354
Регистрация: 13.01.2012
Сообщений: 8,460
11.02.2013, 14:45
при возникновении исключения не принадлежащего классу Exception Они что бы не засорять текст программы кидают исключение класса Exception и тут же ловят и показывают его. вместо пустой строки вы можете ввести свое сообщение например "непредвиденное исключение". по какой-то причине они не стали осчастливливать код этим текстом и оставили это вам
1
 Аватар для HardLogin
54 / 54 / 2
Регистрация: 20.01.2013
Сообщений: 832
Записей в блоге: 1
11.02.2013, 16:20  [ТС]
кто они? вы имеете ввиду мой код?
0
Эксперт С++
 Аватар для Avazart
8488 / 6155 / 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
8488 / 6155 / 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
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11680&d=1772460536 Одним из. . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru