|
|
|
как заставить new генерить исключения ??
|
|||
|---|---|---|---|
|
#18+
как заставить new генерить исключения ?? у меня возвращает NULL, если не удается выделить блок памяти в VS. Хорошо, что проверил, т.к. думал наоборот, что всегда генерятся исключения если не поставить nothrow. Эту же прогульку придется портировать под никс, как сделать, чтобы там тоже были исключения у new гарантированно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.08.2007, 15:35 |
|
||
|
как заставить new генерить исключения ??
|
|||
|---|---|---|---|
|
#18+
P.S. в релизе собирается с исключениями ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.08.2007, 15:58 |
|
||
|
как заставить new генерить исключения ??
|
|||
|---|---|---|---|
|
#18+
Дык сравни настройки компилятора в дебуге и релизе и выстави соответственно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.08.2007, 16:46 |
|
||
|
как заставить new генерить исключения ??
|
|||
|---|---|---|---|
|
#18+
Tubrikт.к. думал наоборот, что всегда генерятся исключения если не поставить nothrow. я тоже так думал :( пример дашь ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.08.2007, 16:52 |
|
||
|
как заставить new генерить исключения ??
|
|||
|---|---|---|---|
|
#18+
[quot Gluk (Kazan)][quot Tubrik]т.к. думал наоборот, что всегда генерятся исключения если не поставить nothrow. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. проект затачивал под обработку исключений и так мне на самом деле проще, чем каждый раз проверять на NULL ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.08.2007, 17:04 |
|
||
|
как заставить new генерить исключения ??
|
|||
|---|---|---|---|
|
#18+
не оно ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.08.2007, 17:05 |
|
||
|
как заставить new генерить исключения ??
|
|||
|---|---|---|---|
|
#18+
Майерс писал, что NULL возвращают старые компиляторы, современные же возвращают исключения. Возможно надо отсюда копать, т.е. разрешить какие-то исключения или использовать какие-то библиотеки.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.08.2007, 17:10 |
|
||
|
как заставить new генерить исключения ??
|
|||
|---|---|---|---|
|
#18+
Как вариант, сделать выделение памяти в одном месте, проверять на NULL и генерить ексепшн не айс ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.08.2007, 17:12 |
|
||
|
как заставить new генерить исключения ??
|
|||
|---|---|---|---|
|
#18+
вот большое обсуждалово на эту тему ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.08.2007, 17:14 |
|
||
|
как заставить new генерить исключения ??
|
|||
|---|---|---|---|
|
#18+
Tubrik Эту же прогульку придется портировать под никс, как сделать, чтобы там тоже были исключения у new гарантированно? ASP 10, gcc 3.3.3 бросает bad_alloc ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.08.2007, 17:22 |
|
||
|
как заставить new генерить исключения ??
|
|||
|---|---|---|---|
|
#18+
щас почитаю, пока попробовал сделать так: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. но что-то в дебуге все стало проваливаться в бесконечный цикл ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.08.2007, 17:27 |
|
||
|
как заставить new генерить исключения ??
|
|||
|---|---|---|---|
|
#18+
там вроде про то же самое пишут ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.08.2007, 17:32 |
|
||
|
как заставить new генерить исключения ??
|
|||
|---|---|---|---|
|
#18+
мне начинает казаться, что большинство программ написано без подобных проверок на нехватку памяти, а там где эти проверки все же есть никто не проверял, работают ли они на самом деле, и видимо оно так лучше, ибо, как я сегодня заметил, себе дороже выходит ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.08.2007, 17:44 |
|
||
|
как заставить new генерить исключения ??
|
|||
|---|---|---|---|
|
#18+
Tubrikщас почитаю, пока попробовал сделать так: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. но что-то в дебуге все стало проваливаться в бесконечный цикл Про эти вещи очень подробно Майерс во второй книге расписал. На rsdn обсуждали, что можно делать в хандлере. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.08.2007, 17:54 |
|
||
|
как заставить new генерить исключения ??
|
|||
|---|---|---|---|
|
#18+
вот что получается, при исользовании Код: plaintext 1. 2. 3. 4. в дебажной версии исключение происходит, но оно не отлавливается, будто бы вызвано не из блока try, т.е. когда выделение new происходит вообще в другом модуле, то catch не срабатывает даже с (...) сделал тестовую программульку для лучшего понимания:) Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. вот в кратце что вышло... запустив релиз отдельно от оболочки ctrl + F5 отлавливается исключение std::bad_alloc !, хотя вообще не должно, в оболочке - не отлавливается ---------------------------------------------------- далее перемещаю throw std::bad_alloc(); внутрь блока try - все работает как положено и дебуге, и в релизе ---------------------------------------------------- убираю throw std::bad_alloc(); вообще из main(), в дебаге (при первой поптытке ребилда падает студия - молча исчезает), а вообще срабатывает catch(...), но почему он?? в релизе студия продолжает регулярно схлопываться - видимо ее разработчки не не проверяли выделение памяти :), но catch срабатывает как нужно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.08.2007, 19:40 |
|
||
|
|

start [/forum/topic.php?fid=57&msg=34711651&tid=2028400]: |
0ms |
get settings: |
10ms |
get forum list: |
21ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
207ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
69ms |
get tp. blocked users: |
1ms |
| others: | 241ms |
| total: | 569ms |

| 0 / 0 |
