С++ EH и логика на исключениях
Sep. 29th, 2014 11:55 am![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
Хорошо ли в C++ программе делать логику на исключениях?
Я ща втыкаю в одну опенсорсную СУБД в продакшене отладчиком и вижу что там на каждый запрос валится стопицот крестиковых исключений, и не понимаю, это нормально или нет.
Я ща втыкаю в одну опенсорсную СУБД в продакшене отладчиком и вижу что там на каждый запрос валится стопицот крестиковых исключений, и не понимаю, это нормально или нет.
no subject
Date: 2014-09-29 09:02 am (UTC)no subject
Date: 2014-09-29 09:03 am (UTC)no subject
Date: 2014-09-29 09:04 am (UTC)no subject
Date: 2014-09-29 09:05 am (UTC)Лучше их оставлять для по настоящему тяжёлых случаев.
Да и зубры то же самое рекомендуют...
no subject
Date: 2014-09-29 09:06 am (UTC)Поэтому мы под линукс эмулируем этот seh (через сигналы и дизассемблирование инструкций по адресу в стеке), так, чтобы тест отрабатывал.
no subject
Date: 2014-09-29 09:20 am (UTC)(no subject)
From:(no subject)
From:no subject
Date: 2014-09-29 10:16 am (UTC)(no subject)
From:no subject
Date: 2014-09-29 11:41 am (UTC)(no subject)
From:(no subject)
From:(no subject)
From:no subject
Date: 2014-09-29 12:07 pm (UTC)no subject
Date: 2014-09-29 12:53 pm (UTC)(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:no subject
Date: 2014-09-30 06:56 am (UTC)(no subject)
From:no subject
Date: 2014-09-29 09:44 am (UTC)no subject
Date: 2014-09-29 10:31 am (UTC)(no subject)
From:(no subject)
From:(no subject)
From:no subject
Date: 2014-09-29 09:45 am (UTC)Для ООП в целом - стандартный подход, исключение - это способ послать сообщение.
Отсюда вывод, для написания СУБД надо уметь оба подхода.
no subject
Date: 2014-09-29 11:57 am (UTC)Сообщения - это сообщения.
(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:no subject
Date: 2014-09-29 09:49 am (UTC)no subject
Date: 2014-09-29 10:15 am (UTC)no subject
Date: 2014-09-29 10:17 am (UTC)Исключения надо бросать, когда обнаружено несоответствие требованиям и надо грохнуть задачу (например, загрузка файла), отметив это в родительской задаче (например, импорт пользовательских настроек). При этом, в контексте требований родительской задачи всё может быть ок - настроек из хрома не нашли, настройки из оперы предложили применить.
Если _можно_ и _удобно_ представить рассматриваемую ситуацию в виде задачи и требований, то исключения годный инструмент. Иначе - ошибка проектирования.
no subject
Date: 2014-09-29 10:36 am (UTC)Нехорошо.
Да и вообще, опен-соурсные субд лучше бы писать на C (без плюсов).
no subject
Date: 2014-09-29 10:59 am (UTC)(no subject)
From:(no subject)
From:no subject
Date: 2014-09-29 11:10 am (UTC)А вот для обработки ошибок, напротив, штука полезная - сильно сокращает объем текста, делает его обозримым, позволяет брякать на определенную ошибку без потери времени на пошаговую (правда вынуждает дополнительно заморачиваться с прикапыванием всего аллоцированного в объектах с деструкторами, но даже и это в конечном счете окупается)
no subject
Date: 2014-09-29 11:19 am (UTC)no subject
Date: 2014-09-29 11:34 am (UTC)(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:no subject
Date: 2014-09-29 11:58 am (UTC)no subject
Date: 2014-09-29 01:48 pm (UTC)И вдобавок, в яве исключение тоже является дорогой операцией.
(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:no subject
Date: 2014-10-01 05:55 pm (UTC)no subject
Date: 2014-10-02 11:41 am (UTC)Необходимо срочно (вчера) найти телефон родственника в Белорусии по адресу и фамилии.
В интернетах пишут вроде:
Одно дело с ныне проживающими жителями Беларуси, т.е. найти родственников по фамилии – это можно сделать по справочникам в Библиотеке либо по общереспубликанскому телефону справочной службы (Справочная служба о номерах телефонов квартир и организаций - № тел. 109, Мингорсправка - № тел. 168, международный код г.Минска +375 17). Однако даже в этом случае, чтобы дойти до нужного адресата, Вам понадобится хотя бы ФИО, либо адрес, либо телефон. Но это самая простая ситуация, и если человек долго проживает и прописан в Беларуси, то отыскать его не должно составить труда.
Но на короткие белорусские номера из богоспасаемой не позвонить. Есть советы, куда бежать?
no subject
Date: 2014-10-02 12:08 pm (UTC)Если Минск, то могу глянуть по старой телефонной базе, в личку фамилию и адрес скиньте.
(no subject)
From:(no subject)
From:(no subject)
From: