|
|
|
Исключение в процессе инициализации приложения.
|
|||
|---|---|---|---|
|
#18+
В общем, дело обстоит так. Есть приложение, в нем несколько статических синглтонов - подсистем. Они загружаются в определенном порядке - сначала логер, потом конфиг, потом датабейс и шедюлер итд. Деинициализируются они в обратом порядке. Проблема в том, что насколько я понял, всю функцию WinMain нельзя взять в try-catch. А мне надо отловить ситуацию с возможными экзепшенами, возникающими ДО входа в WinMain. Например, в конфиге ошибки или соединение с БД не установить итд. Или после выхода из оной, когда синглтоны деинициализируются . Стандартная панель ошибки VC++ категорически не нужна - нужно взять стектрейс из экзепшена (Все экзепшены наследуются от одного корня, STL отучен от кидания std::* ), кинуть его в лог и умереть по тихому. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.06.2005, 20:12 |
|
||
|
Исключение в процессе инициализации приложения.
|
|||
|---|---|---|---|
|
#18+
Как вариант: Код: 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. При любом выбрасывании исключения при инстанцировании у нас есть надежный guard singleton. Удачи! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.06.2005, 21:05 |
|
||
|
Исключение в процессе инициализации приложения.
|
|||
|---|---|---|---|
|
#18+
Мне бы не хотелось обходить все ситуации, где может возникнуть исключение. Лучше было бы взять под контроль всю подсистему аварийного останова приложения. Изучение файла crt0.c пока ничего не дало. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.06.2005, 15:20 |
|
||
|
Исключение в процессе инициализации приложения.
|
|||
|---|---|---|---|
|
#18+
Не проще ли вынести инициализацию из конструкторов в отдельный метод, который и вызывать из WinMain? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.06.2005, 16:18 |
|
||
|
Исключение в процессе инициализации приложения.
|
|||
|---|---|---|---|
|
#18+
roman10Не проще ли вынести инициализацию из конструкторов в отдельный метод, который и вызывать из WinMain? Ну, так человеку хочется показать свою крутизну и отдать дань моде ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.06.2005, 16:30 |
|
||
|
Исключение в процессе инициализации приложения.
|
|||
|---|---|---|---|
|
#18+
Землекоп roman10Не проще ли вынести инициализацию из конструкторов в отдельный метод, который и вызывать из WinMain? Ну, так человеку хочется показать свою крутизну и отдать дань моде )))))))) чтобы обработать все исключалки до клика мышкой на ярлыке проги (на обработчике MouseMove) ))))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.06.2005, 16:45 |
|
||
|
Исключение в процессе инициализации приложения.
|
|||
|---|---|---|---|
|
#18+
roman10Не проще ли вынести инициализацию из конструкторов в отдельный метод, который и вызывать из WinMain? Я в общем то согласен, что более надежно было бы жить вообще без исключений и CRT Startup, и поставить в WinMain большой SEH - обработчик, который бы давил все исключения. Но код уже написан и находится в стадии полировки. Менять структуру на данном этапе нельзя. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.06.2005, 17:26 |
|
||
|
|

start [/forum/topic.php?fid=57&gotonew=1&tid=2033145]: |
0ms |
get settings: |
9ms |
get forum list: |
11ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
48ms |
get topic data: |
8ms |
get first new msg: |
4ms |
get forum data: |
2ms |
get page messages: |
34ms |
get tp. blocked users: |
1ms |
| others: | 266ms |
| total: | 387ms |

| 0 / 0 |
