![]() |
Модераторы: Daevaorn |
![]() ![]() ![]() |
|
Void |
|
|||
![]() λcat.lolcat ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2206 Регистрация: 16.11.2004 Где: Zürich Репутация: 40 Всего: 173 |
Не извращай слова Мастера! ![]() Совет №2 из главы 14 («Исключения») TC++PL:
-------------------- “Coming back to where you started is not the same as never leaving.” — Terry Pratchett |
|||
|
||||
Xenon |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1529 Регистрация: 12.4.2006 Репутация: 11 Всего: 50 |
Void Блин, опять все на усмотрение программиста ... Путает новичка такое
![]() |
|||
|
||||
Dray |
|
|||
![]() Материалист ![]() ![]() Профиль Группа: Участник Сообщений: 652 Регистрация: 7.10.2003 Где: г. Всеволожск Репутация: 2 Всего: 6 |
Конечно радикально высказался, извеняюсь. ![]() |
|||
|
||||
Void |
|
|||
![]() λcat.lolcat ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2206 Регистрация: 16.11.2004 Где: Zürich Репутация: 40 Всего: 173 |
Исключения должны служить своей главной цели: обработке ошибок, исключительных ситуаций. Использовать их для передачи управления, строить на них логику не стоит.
По-моему, эта мысль красной нитью проходит через все стоящие книги по C++. А уж в TC++PL так вообще основная идея в этом ![]() -------------------- “Coming back to where you started is not the same as never leaving.” — Terry Pratchett |
|||
|
||||
sergejzr |
|
|||
![]() Un salsero ![]() Профиль Группа: Админ Сообщений: 13285 Регистрация: 10.2.2004 Где: Германия г .Ганновер Репутация: 19 Всего: 360 |
Один из простых примеров - исключение по нехватке памяти. Не было бы его, пришлось бы перед каждым new проверять, хватит ли памяти на новый обьект. Так как new может в программе быть очень много, легче поймать исключение в критическом отрезке кода.
Ещё удобная вещь, что исключения можно "ловить" разные и они сами расскажут тебе, что произошло. Не надо каждый раз проверять коды возврата итд. Экономит кучу писанины. Вот например..
Добавлено @ 00:32 Записывается состояние игры. Там может быть куча разных ошибок. Смысл любой из них, что состояние не сохранено. Но откуда об этом знать самой функции "openFile". Она то не в курсе, зачем файл открывает. openFile - знает только, открыля файл или нет storeGameState- знает, записалось ли состояние игры итд. Всё выше по абстрактой лестнице от деталей к общему. |
|||
|
||||
![]() ![]() ![]() |
Правила форума "С++:Общие вопросы" | |
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |