|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
27.08.2017, 13:19 | #21 | ||
Старожил
Регистрация: 16.12.2011
Сообщений: 2,329
|
Цитата:
или программист, который писал его вызов, знал для чего он это делал? потому что если знал, тогда вестимо знал и о том, чем грозит сбой в работе этой функции. а стало быть может предусмотреть запасной вариант развития событий. Цитата:
одному персонажику из этой самой темы было очень удобно ловить эксепшен вылетевший из уровня Z, на уровне A. а потом разводить руками: "а что я тут ещё могу сделать? только заллогировать" наверное, ему тоже было "виднее". любые ошибки всегда нужно обрабатывать по месту возникновения. плохой код: Код:
Код:
|
||
27.08.2017, 13:56 | #22 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,330
|
А нельзя ли повежливей?
Поясняю в последний раз - я нигде не говорил, что запрещено ловить исключения в других местах, кроме как на уровне А. Если на каком-то уровне можно справиться с ошибкой, то ради бога, я не против. Речь шла о возвращении кода ошибки vs исключение. В вашем примере "хорошего" кода возвращения кода ошибки я не наблюдаю - ну и в чем разница? Ну да, вы обрабатываете ошибку внутри, ай маладец. А что делаем если ошибка возникла в on_error? При вашем подходе, верхних слой вообще не может узнать что есть ошибка - функция объявлена void. |
27.08.2017, 15:36 | #23 |
Старожил
Регистрация: 12.01.2011
Сообщений: 19,500
|
Кстати, раз уж тут обсуждали все варианты использования исключений, то еще есть такой (не знаю популярен ли в С++, я использовал в одном проекте, брат и кот пока живы): OperationCancelledException для прерывания работы потока/операции.
Ну то есть во время какой-нибудь долгой операции (загрузка файла по сети, ...) надо периодически проверять не вызвал ли пользователь отмену. И чтоб не добавлять кучу проверок с return'ами в каждой функции проще сделать функцию типа такой Код:
Код:
Код:
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом. |
27.08.2017, 16:07 | #24 |
Вредный кошак
Участник клуба
Регистрация: 14.10.2012
Сообщений: 1,159
|
Последний раз редактировалось Croessmah; 27.08.2017 в 16:09. |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Исключения c# | CROWN | C# (си шарп) | 3 | 21.12.2014 18:29 |
Исключения в Qt | iukash | Qt и кроссплатформенное программирование С/С++ | 6 | 16.04.2011 18:54 |
Исключения C++ | Impuls1989 | Помощь студентам | 2 | 04.03.2011 00:51 |
Исключения | yurik1982 | Фриланс | 9 | 16.02.2010 00:34 |
Исключения | Rifler | Общие вопросы Delphi | 5 | 12.11.2008 00:29 |