The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Режим отображения отдельной подветви беседы [ Отслеживать ]

Оглавление

Представлен многооконный консольный почтовый клиент Aerc, opennews (??), 07-Июн-19, (0) [смотреть все]

Сообщения [Сортировка по времени | RSS]


58. "Представлен многооконный консольный почтовый клиент Aerc"  +/
Сообщение от Crazy Alex (ok), 07-Июн-19, 12:30 
Смарт-поинтеры с исключениями для кого придумывали... и никаких borrow checker, и писанины минимум
Ответить | Правка | К родителю #6 | Наверх | Cообщить модератору

70. "Представлен многооконный консольный почтовый клиент Aerc"  +1 +/
Сообщение от имя (?), 07-Июн-19, 15:38 
> Смарт-поинтеры

А потом приходит какой-нибудь умник с очередной зависимостью и опять привет, malloc()

> с исключениями

Это которые выскакивают каждый раз в новом и неожиданном месте, а ты потом весь main() в try/finally оборачиваешь?

Ответить | Правка | Наверх | Cообщить модератору

141. "Представлен многооконный консольный почтовый клиент Aerc"  +/
Сообщение от Crazy Alex (ok), 02-Май-20, 17:57 
Как придёт - так и уйдёт, ибо код гайдлайны не позволяют. Ну либо будет обёрнут во что-то. В этом плане язык никакой роли не играет.

Исключения - нет, это те, которые обрабатываются по кускам иерархии там, где нужно, гарантируют корректное управление ресурсами и не тащат за собой необходимость проверять код возврата в каждой строке. А вывалится у тебя в main необработанное исключение или придёт руками протащенный через пятнадцать уровней стека код ошибки - всё равно у тебя проблемы, но без исключений - ты ещё и не уверен в консистентности состояния приложения. Судя по finally - ты вообще по джаве судишь, кстати.

Ответить | Правка | Наверх | Cообщить модератору

148. "Представлен многооконный консольный почтовый клиент Aerc"  +/
Сообщение от имя (ok), 12-Май-20, 12:42 
> Судя по finally - ты вообще по джаве судишь, кстати.

Почему сразу джаве? Finally и в C# есть, JS, питоне, руби… Да и какая, в общем-то, разница, как и где называется этот механизм, с тем же успехом народ любит класть болт и незамысловатым catch(std::exception).

> Исключения - нет, это те, которые обрабатываются по кускам иерархии там, где
> нужно

Где ж вы таких редких плюсовиков находите, чтобы их вообще интересовало, где и какие могут возникнуть исключения? В лучшем случае у людей всё как в inkscape — половина немногочисленных примеров использования сводится к «catch(...) {}» (нет, это не моё сокращение, это именно «лови всё и забивай»).

Упомянутым выше джавистам, кстати, проще следить за гигиеной исключений: если я правильно помню, их компилятор заставляет либо обработать исключение, либо явно вбить в сигнатуру «throws чего-нибудь». А что в плюсах? «Нууу, std::string::reserve может чего-то выкинуть» можно встретить только на задворках документации, если целенаправленно искать. Для gcc даже -W-флагов релевантных нет.

> гарантируют корректное управление ресурсами

try {} за меня дескрипторы закроет, что ли? Верните этот аргумент в сообщение про смарт-пойнтеры, здесь он иррелевантен.

> и не тащат за собой необходимость
> проверять код возврата в каждой строке.

А в итоге все всё равно забивают на проверки. Толку от того, что проверки пишешь реже, если человека никто не заставляет эти проверки вообще производить? В этом плане плюсовые исключения недалеко ушли от функций, возвращающих -1. Полноценный option type в этом плане понадёжней будет.

> А вывалится у тебя в
> main необработанное исключение или придёт руками протащенный через пятнадцать уровней
> стека код ошибки - всё равно у тебя проблемы, но без
> исключений - ты ещё и не уверен в консистентности состояния приложения.

Да я и с исключениями не уверен: внутренние инварианты можно забыть вернуть в адекватное состояние и при своевременной ловле всех исключений. От такого прокола никакой из императивных способов обработки ошибок не спасёт, проще убежать в ФП и начать наяривать на иммутабельные структуры данных.

Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру