|
2 / 2 / 0
Регистрация: 17.12.2017
Сообщений: 116
|
||||||
Обработка исключительных ситуаций19.05.2019, 17:55. Показов 2155. Ответов 27
Метки нет (Все метки)
Здравствуйте!
В данном коде надо выполнить обработку исключительных ситуаций с использованием класса Exception.
0
|
||||||
| 19.05.2019, 17:55 | |
|
Ответы с готовыми решениями:
27
Обработка исключительных ситуаций Обработка исключительных ситуаций Обработка исключительных ситуаций |
|
1673 / 501 / 107
Регистрация: 17.05.2015
Сообщений: 1,518
|
|||||||
| 21.05.2019, 13:33 | |||||||
|
Во-первых, причем тут си-шарп? Во-вторых, вы это серьёзно? Про "ловушку параноика"? Вот например, один бездарный дилетант написал такой код:
Как вам поможет такая ловушка? Вы даже понять что случилось никак не сможете. Никакой диагностики. И в третьих, если все ж таки включить голову и подумать, для чего по вашему в язык завезли возможность отлавливать эксепшены по базовому классу? Наверное, что бы этим не пользоваться, да? И диагностику неполадки не журналировать? Никогда не могла понять: откуда только берется такой бред в головах? - Давай отлавливать все исключения через std::exception? - Давай, только все не получится. Всё равно придется ставить ловушку параноика. И туда кроме seh будут штатные эксепшены залетать. - ???? - Так ведь у нас в IT нынче идиотов много. Они кидают всякий хлам, который не отнаследован от std::exception. И потом поди, разбери всю эту сволочь.
0
|
|||||||
|
6772 / 4565 / 1844
Регистрация: 07.05.2019
Сообщений: 13,726
|
|||||||
| 21.05.2019, 13:46 | |||||||
|
Добавлено через 3 минуты вообще здесь должно быть
0
|
|||||||
|
1673 / 501 / 107
Регистрация: 17.05.2015
Сообщений: 1,518
|
|||
| 21.05.2019, 13:48 | |||
|
который ни разу не применял свою теорию на практике. Вот почему у всех адекватных людей получается запустить план Б, а вы не можете? В какой ситуации запускают план Б? План Б запускают в ситуации, когда провалился план А. Заметьте: не важно, почему именно провалился план А. Важно: он уже провалился, и теперь нужно что-то делать. И именно для этого случая существует план Б. Самолет летит в воздухе. У него отказал двигатель. Короткое замыкание, или птичка в турбину попала, или... ? Здесь и сейчас не важно, почему отказал двигатель. Важно: что теперь будем делать? Как нам выжить? Во-первых, нужно отключить сломанный двигатель. Что бы не дай бог ещё хуже не стало. А во-вторых, нужно запустить аварийный двигатель. Обратите внимание: Вы будете выполнять одну и ту же инструкцию: Отключать сбойный модуль, и запускать аварийный. И это - независимо от причины аварии. С причинами будут разбираться позже, когда самолет посадят на землю. Сейчас нужно отключить сбойный модуль, и запустить аварийный. Поэтому, "разные ошибки" - не принципиальный фактор. За редким исключением, одна и та же ловушка на все случаи жизни Это так сложно для вашего понимания? Добавлено через 1 минуту что не нужно ожидать наследников std::exception? Вы сами понимаете, какую ахинею несёте?
0
|
|||
|
Комп_Оратор)
|
||
| 21.05.2019, 14:04 | ||
|
Кроме разыменования нуль-пойнтера под ms компилятором (см. пост oleg-m1973) достаточно много есть примеров того, что идиотов в IT может оказаться на 1 больше чем некто предполагает. Что-до адресной обработки разных ошибок, то она придумана не идиотами. Хотя то, о чём вы говорите стало практикой ввиду технологичности и относительной простоте, ни кто не отменял и иное. Пусть Ваша категоричность продолжает этот беспредметный спор. Жаль, повторю - тот пост теперь доступен лишь упорным исследователям. Там кстати полно логических ошибок. Поторопился я. Но исправить не составит труда. Пример кода бывает разный. Я не люблю давать решение. Мне нравится показать как его можно найти. Иначе смысла не вижу. Именно по этому не стану продолжать данный разговор.
0
|
||
|
6772 / 4565 / 1844
Регистрация: 07.05.2019
Сообщений: 13,726
|
|||||||
| 21.05.2019, 14:43 | |||||||
|
Я вроде бы сказал, что всегда должен присутствовать catch(...).
0
|
|||||||
|
1673 / 501 / 107
Регистрация: 17.05.2015
Сообщений: 1,518
|
|||||||||||||
| 21.05.2019, 14:53 | |||||||||||||
|
seh под виндовс не имеет никакого отношения ни к юзерским эксепшенам, ни к эксепшенам с++ вообще. 2. seh (например, access violation) вы сможете отловить только в трех точках (...) На самом деле не только в трех точках
.
Я знаю как минимум два способа. Один из которых: проксировать seh-exceptions через эксепшены с++. (seh отлавливается спец. ловушкой, и перебрасывается дальше уже как обычный c++ эксепшен) Это, безусловно, полезная возможность для разработки под windows. Однако, это - отдельная тема, которая тянет на хорошую статью, где нибудь на Хабре. Захотите поговорить о seh - создайте отдельную тему)) "Три точки" - это именно та ловушка, оказавшись в которой, даже предположить нельзя, что именно могло случится, и почему процесс угодил в эту ловушку. В связи с этим ваша фраза: Ну конечно она придумана не идиотами, и не просто так. Она придумана для редких случаев, когда причина неполадки действительно имеет значение для решения проблемы. Например, на стороне клиентского кода используется класс коннекторов к базе данных. Коннектор подсоединяется к БД, и выполняет какой то пользовательский запрос в БД. И тут есть две принципиально разные категории возможных сбоев: Например отсутствие связи по интернет, или слишком много юзеров уже подсоединились к базе. Во всех этих случаях мы можем попытаться подключиться чуть позже. Другая категория: когда подключение успешное, но сам по себе SQL запрос некорректный. Вот здесь бесполезно пытаться подключиться позже. Здесь любые попытки будут бесполезны. Нужно звать программиста, и пусть исправляет баг. Соответственно:
Плохо, когда человек не умеет признавать свои ошибки. А вы - молодец. Добавлено через 4 минуты которые учились на си-шарп, ожидают, что все нормальные эксепшены будут наследниками std::exception? Типа, наследоваться от std::exception не нужно, все равно ловить в трех точках будут? Я правильно поняла этот бред?
0
|
|||||||||||||
|
6772 / 4565 / 1844
Регистрация: 07.05.2019
Сообщений: 13,726
|
|||
| 21.05.2019, 15:26 | |||
|
Второе - сам по себе std::exception малоинформативен, к тому же его нельзя ни к чему преобразовать (в отличие от шарпов). Поэтому будут делаться несколько catch, например для std::system_error, т.е. "будут ловить в нескольких точках" Насчёт только программистов на си-шарп я конечно загнул, всякие скриптовики тоже думают, что достаточно отловить std::exception и всё будет в шоколаде. Добавлено через 7 минут
0
|
|||
|
1673 / 501 / 107
Регистрация: 17.05.2015
Сообщений: 1,518
|
|||||||||||
| 21.05.2019, 15:43 | |||||||||||
|
Вот почему вы считаете грамотный подход к работе бредом? Все грамотно выполненные классы эксепшенов в обязательном порядке отнаследованны от std::exception Если ваш бестолковый эксепшен не отнаследован от std::exception, то в 99% всех кейсов ваш эксепшен отловят только в этих чертовых трех точках, где уже никто не будет знать что случилось. e.what() ? Не, не слышал.Вот именно, что знание о фактическом типе наследника как раз таки мало-информативно. Допустим отловили вы ErrorOpenFile, ну и что вам даст знание о типе? Что файл не открылся? Вы итак это знаете, раз попали в ловушку после openFile(path);О какой такой информативности вы сейчас вещаете? Хотите знать детали, почему конкретно файл не смог открыться? Может его на диске нет? Может он другим процессом занят? Не хватает прав? Вы эти детали хотите знать? Так вот специально для этого и существует волшебный e.what()
Приведите кодом пример нескольких catch для std::system_error, которые вы "будете ловить в нескольких точках" Вы лучше попробуйте привести пример, когда "всё не в шоколаде".
1
|
|||||||||||
| 21.05.2019, 15:43 | |
|
Помогаю со студенческими работами здесь
28
Обработка исключительных ситуаций Обработка исключительных ситуаций Обработка исключительных ситуаций! Обработка исключительных ситуаций.
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Рецензия / Мнение
Это мой обзор планшета X220 с точки зрения школьника.
Недавно я решила попытаться уменьшить свой. . .
|
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
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов.
. . .
|
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
|
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
|