| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Общие вопросы > Проблема с исключениями! |
| Автор: rainbow86 18.12.2006, 15:18 | ||||
В MSDN нашел пример построения статической библиотеки вотс таким вот кодом:
При использовании этого класса, программа вылетатет на строчке
Какая здесь может быть ошибка??? Код в точности повторяет код из msdn!!! |
| Автор: Anikmar 18.12.2006, 15:24 |
| А что еще программа по этой строчке должна делать?! Там же прямо сказано ВЫЛЕТЕТЬ... |
| Автор: rainbow86 18.12.2006, 15:46 |
| Мож я конечно чего то не понимаю |
| Автор: JackYF 18.12.2006, 15:47 |
Молодец! Классно написал! А может добавим в стандарт оператор flyout - вылететь нафиг? По существу, в этой строчке выбрасывается исключение. Так вот, если клиентский код его не обработал ( блоком try-catch ), то программа вылетит. Так что все верно. Если же сделать обработку, то программа будет работать/хромать и дальше. |
| Автор: witex 18.12.2006, 15:49 |
| У тебя класс работает? или пишет ошибку при компиляции?или при работе уже с прогой? Если во время работы, то просто параметр передай не 0, он обрабатывает ошибку деления! деления на 0! |
| Автор: Anikmar 18.12.2006, 15:49 | ||||
Ладно придираться
А как назовем оператор flyin? |
| Автор: witex 18.12.2006, 15:58 |
| ну дык, правильно делай исключение, а не вылет. try/catch и вперёд! |
| Автор: JackYF 18.12.2006, 16:00 |
| Хм... надо подумать Ну что, делаем опрос? |
| Автор: rainbow86 18.12.2006, 16:07 | ||
В том то и дело что исключение обробатывается вот код:
Все проблему решил, незаметил ошибку: вместо catch(std::invalid_argument b) надо было catch(std::invalid_argument *b) Всем спасибо! |
| Автор: Любитель 18.12.2006, 16:28 |
| JackYF, ИМХО оператор не надо. Можно добавить функция в рантайм (что называется Language support runtime library): std::fly_to_fig. Не знаю, как лучше по аглички назвать. Можно также для винды std::make_blue_screen. Опрос, конечно, надо устроить. Резултьтат отошлём комитету для следующего стандарта плюсов (в C++09 это уже не успеет войти). Добавлено @ 16:33 Э-э, не гуд исключение на хипе создавать. Надо привыкать юзать стек и ссылки. Во-первых, кто его удалять должен (только не говорите, что рантайм - это не так)? Во-вторых, интересно, как std::bad_alloc вы выбрасывать будете (мож собственные аллокаторы пишете). |
| Автор: Anikmar 18.12.2006, 16:40 |
| fly_to_ass |
| Автор: Daevaorn 18.12.2006, 19:44 |
Никогда так не делай! Это тебе не Java:) |
| Автор: Oleg_Ci 18.12.2006, 20:14 | ||||
интересно, ведь здесь память выделяется
блин, меня Daevaorn опередил |