powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Обработка исключений отсутствует
25 сообщений из 97, страница 1 из 4
Обработка исключений отсутствует
    #38390438
stuffy.reg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Считается ли дурным тоном в создаваемом проекте не обрабатывать исключения ?

Недавно довелось ознакомиться с процессом разработки одной команды. Делали клиентскую часть, 4 человека, пол года работы. Тим лид строго запретил обрабатывать исключения...
Одному мне это кажется неправильным, или подобное часто практикуется?
...
Рейтинг: 0 / 0
Обработка исключений отсутствует
    #38390451
Фотография Анатолий Широков
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
stuffy.regСчитается ли дурным тоном в создаваемом проекте не обрабатывать исключения ?

Недавно довелось ознакомиться с процессом разработки одной команды. Делали клиентскую часть, 4 человека, пол года работы. Тим лид строго запретил обрабатывать исключения...
Одному мне это кажется неправильным, или подобное часто практикуется?

Скорее всего ты либо не правильно понял тимлида, либо речь шла об ограничении тех видов исключений, обработка которых зашита в глобальном обработчике исключений и осуществляется централизованно. Сам посуди. Если ты в своем коде перехватил исключение и обработал его нестандартным образом, выведя его на экран с помощью MessageBox, тогда как все остальные ошибки у вас выводятся специальным диалогом с возможностью отправки ошибок в службу поддержи, ясно, что это никогда не будет одобрено тимлидом.
...
Рейтинг: 0 / 0
Обработка исключений отсутствует
    #38390535
Анатолий Широковstuffy.regСчитается ли дурным тоном в создаваемом проекте не обрабатывать исключения ?

Недавно довелось ознакомиться с процессом разработки одной команды. Делали клиентскую часть, 4 человека, пол года работы. Тим лид строго запретил обрабатывать исключения...
Одному мне это кажется неправильным, или подобное часто практикуется?

Скорее всего ты либо не правильно понял тимлида, либо речь шла об ограничении тех видов исключений, обработка которых зашита в глобальном обработчике исключений и осуществляется централизованно. Сам посуди. Если ты в своем коде перехватил исключение и обработал его нестандартным образом, выведя его на экран с помощью MessageBox, тогда как все остальные ошибки у вас выводятся специальным диалогом с возможностью отправки ошибок в службу поддержи, ясно, что это никогда не будет одобрено тимлидом.
Глобальном обработчике это до самого верху стек раскручивают, а как узнают о конкретном месте возникновения исключения?
Не лучше ли самому поймать исключение, вывести на экран, и сделать rethrow с добавлением к строке информации о месте возникновения исключения, или использовать для этого std::throw_with_nested(std::logic_error(std::string(__FILE__) + std::to_string(__LINE__) + __FUNCTION__)); ?
...
Рейтинг: 0 / 0
Обработка исключений отсутствует
    #38390548
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Считается ли дурным тоном в создаваемом проекте не обрабатывать исключения ?

Нет, в общем случае. Вообще, в с++ исключения можно вообще не использовать.

Недавно довелось ознакомиться с процессом разработки одной команды. Делали клиентскую часть, 4 человека, пол года работы. Тим лид строго запретил обрабатывать исключения...
Одному мне это кажется неправильным, или подобное часто практикуется?


Не часто, но бывает.
В современном с++ безусловно выглядит странно.
...
Рейтинг: 0 / 0
Обработка исключений отсутствует
    #38390554
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
stuffy.regОдному мне это кажется неправильным, или подобное часто практикуется?
Сама по себе задача обработки исключения порождает еще целый
ворох проблем. А именно - как обработать? Игнорировать? Логгировать?
Обернуть в другой тип исключения и передать наверх? e.t.c.
Поэтому иногда лучше ничего не сделать чем "замылить" ошибку,
...
Рейтинг: 0 / 0
Обработка исключений отсутствует
    #38390578
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
С исключениями главное - единый подход во всем приложении, иначе будет несопровождаемое месиво.

А вообще это конечно скорее религиозный вопрос, чем технический.
...
Рейтинг: 0 / 0
Обработка исключений отсутствует
    #38390579
maytonstuffy.regОдному мне это кажется неправильным, или подобное часто практикуется?
Сама по себе задача обработки исключения порождает еще целый
ворох проблем. А именно - как обработать? Игнорировать? Логгировать?
Обернуть в другой тип исключения и передать наверх? e.t.c.
Поэтому иногда лучше ничего не сделать чем "замылить" ошибку,
Вообще ничего не делать, даже не выводить и не логировать сообщение исключения, и не реализовывать std::unexpected_handler() ?
...
Рейтинг: 0 / 0
Обработка исключений отсутствует
    #38390582
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мне трудно понять что имел в виду тот ПМ. Но я вижу его месседж в том
чтобы молясь богу не разбить себе голову. Хватает кодов возврата,
errno, GetLastError e.t.c. для решения задачи ? Хватает ? - Пользуйтесь. Для языков и систем
разработки где НЕЛЬЗЯ по другому получить состояние ошибки - использовать
обязательную обработку.
...
Рейтинг: 0 / 0
Обработка исключений отсутствует
    #38390583
stuffy.reg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Анатолий Широков, уточнил еще раз. В коде нет связок try-catch. На сервер информация об ошибках не отправляется.
Это клиентская часть он-лайн игры.
Предусмотренно стандартное окно сообщения об ошибке. Используется при парсинге протокола: проверяется наличие некоторых ключей json-a. Причем не всех. Если не нашли то что проверяли - сообщение об ошибке и рестарт игры. Если не нашли и проверки на существование ключа не было - все просто падает.
В игровой механике так же в случае любой ошибки все падает.

Это был мой первый опыт с гемдевом. Может это специфика индустрии и у них часто так принято?
...
Рейтинг: 0 / 0
Обработка исключений отсутствует
    #38390584
stuffy.reg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Anatoly MoskovskyС исключениями главное - единый подход во всем приложении, иначе будет несопровождаемое месиво.

А вообще это конечно скорее религиозный вопрос, чем технический.

Да, знаю из бесед, что этого тим лида год назад не взяли в яндекс, проблемы на интервью были как раз с вопросами про обработку исключений.
(* это не сарказм, просто совпадение, я слышал от него самого, что была куча вопросов на эту тему)
...
Рейтинг: 0 / 0
Обработка исключений отсутствует
    #38390613
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
stuffy.reg
Это был мой первый опыт с гемдевом. Может это специфика индустрии и у них часто так принято?

Точно нет.
...
Рейтинг: 0 / 0
Обработка исключений отсутствует
    #38391033
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivstuffy.regЭто был мой первый опыт с гемдевом. Может это специфика индустрии и у них часто так принято?

Точно нет.
Ну я бы так не говорит однозначно.
Во всех игрушках что я играл, периодически происходил вылет на самом интересном месте.
Отсюда вывод - скорее у них принято как раз обратное - не ловить исключения :)
...
Рейтинг: 0 / 0
Обработка исключений отсутствует
    #38391089
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть еще вариант что по некоторым соображенииям экономят ресурсы.
Ну типа... исключения которые валят в цикле - это нагрузка на вычислительную систему.
Проще проверить return code. Как-то так.
...
Рейтинг: 0 / 0
Обработка исключений отсутствует
    #38391103
maytonЕсть еще вариант что по некоторым соображенииям экономят ресурсы.
Ну типа... исключения которые валят в цикле - это нагрузка на вычислительную систему.
Проще проверить return code. Как-то так.
Ну это у них уже исключение головного мозга :)
Как раз таки основное преимущество исключений над кодом возврата, что код возврата всегда должен проверяться на каждой итерации, а исключение можно ловить один раз на весь цикл:
http://forums.pcsx2.net/Thread-blog-C-exceptions-can-be-an-optimization
...
Рейтинг: 0 / 0
Обработка исключений отсутствует
    #38391234
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Наверное есть разные механизмы генерации исключений.
...
Рейтинг: 0 / 0
Обработка исключений отсутствует
    #38391272
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Обработка исключений вообще и спецификации исключений, в частности, добавляют накладные расходы времени исполнения, даже если никакие исключения не возникают.
...
Рейтинг: 0 / 0
Обработка исключений отсутствует
    #38391399
Basil A. SidorovОбработка исключений вообще и спецификации исключений, в частности, добавляют накладные расходы времени исполнения, даже если никакие исключения не возникают.
Получение кода возврата, его проверка и условный переход в сумме добавляют больше накладных расходов - пример по ссылке выше.
...
Рейтинг: 0 / 0
Обработка исключений отсутствует
    #38391416
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Возможность написать:
Код: sql
1.
2.
3.
4.
5.
while (true) {
...
  if (!someThing()) break;
...
}

не зависит от (не)желания использовать исключения.

P.S. И давно try/catch стал дешевле if-а?
...
Рейтинг: 0 / 0
Обработка исключений отсутствует
    #38391451
Basil A. SidorovВозможность написать:
Код: sql
1.
2.
3.
4.
5.
while (true) {
...
  if (!someThing()) break;
...
}

не зависит от (не)желания использовать исключения.

P.S. И давно try/catch стал дешевле if-а?
Да, сейчас сам проверил чего там пишут по ссылке, в общем случае в 2(MSVC)-4(GCC) раза медленней исключения чем код возврата, по крайней мере на таких простых примерах.
http://ideone.com/rx4qqF
...
Рейтинг: 0 / 0
Обработка исключений отсутствует
    #38391492
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. SidorovОбработка исключений вообще и спецификации исключений, в частности, добавляют накладные расходы времени исполнения, даже если никакие исключения не возникают.


Обработка кодов возвратов также добавляет накладные расходы времени выполнения, даже если ошибок не возникает.
...
Рейтинг: 0 / 0
Обработка исключений отсутствует
    #38391507
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivBasil A. SidorovОбработка исключений вообще и спецификации исключений, в частности, добавляют накладные расходы времени исполнения, даже если никакие исключения не возникают.
Обработка кодов возвратов также добавляет накладные расходы времени выполнения, даже если ошибок не возникает.

Я бы даже сказал больше. Если взять С++ и специально не извращаться (через throw() у каждой функции), то при использовании кодов возврата компилятор сгенерит и код для поддержки исключений (вдобавок к юзерской обработке кодов возврата). Т.е. для случая "даже если никакие исключения не возникают" коды будут медленнее.
...
Рейтинг: 0 / 0
Обработка исключений отсутствует
    #38391654
?
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
?
Гость
Anatoly Moskovsky, а если так?
...
Рейтинг: 0 / 0
Обработка исключений отсутствует
    #38391655
?
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
?
Гость
...
Рейтинг: 0 / 0
Обработка исключений отсутствует
    #38391798
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anatoly MoskovskyMasterZivпропущено...

Обработка кодов возвратов также добавляет накладные расходы времени выполнения, даже если ошибок не возникает.

Я бы даже сказал больше. Если взять С++ и специально не извращаться (через throw() у каждой функции), то при использовании кодов возврата компилятор сгенерит и код для поддержки исключений (вдобавок к юзерской обработке кодов возврата). Т.е. для случая "даже если никакие исключения не возникают" коды будут медленнее.

Анатолий, полностью отключить исключения — это один флаг компилятора. Кто не любит исключения, кончено, хорошо про этот флаг знают.

Единственно, я совсем не понимаю, как в этом случае будет работать STD, хотя его конечно можно и вообще не использовать...
...
Рейтинг: 0 / 0
Обработка исключений отсутствует
    #38391808
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
? http://google-styleguide.googlecode.com/svn/trunk/cppguide.xml#Exceptions

Я думаю, в такой конторе здоровой как гуголь, существует не один стандарт кодирования. То, что для каких-то проектов исключения могут не подходить, я вполне согласен. Тем не менее, то, что исключения — генеральная линия развития С++ - несомненно.
...
Рейтинг: 0 / 0
25 сообщений из 97, страница 1 из 4
Форумы / C++ [игнор отключен] [закрыт для гостей] / Обработка исключений отсутствует
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]