- 1
- 2
- 3
- 4
- 5
- 6
- 7
~Guard(){
if(std::uncaught_exception())
try{
}catch(...){
error_output<<"prevented exception!!!"<<endl;
};
}
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+17
~Guard(){
if(std::uncaught_exception())
try{
}catch(...){
error_output<<"prevented exception!!!"<<endl;
};
}
LispGovno 03.06.2014 16:13 # +3
Vasiliy 03.06.2014 16:14 # +8
WGH 03.06.2014 16:38 # +5
bormand 03.06.2014 16:45 # +7
WGH 03.06.2014 16:46 # +4
LispGovno 03.06.2014 16:55 # +4
Elvenfighter 03.06.2014 17:15 # +1
Вот, к примеру: http://ideone.com/F0YXTz
bormand 03.06.2014 19:14 # +2
> оптимизация?
Скорее всего деталь реализации unwinder'а - сначала ищет докуда отмотать, а потом отматывает. А раз исключение не ловят - тупо вызывает terminate положив на все хуй.
bormand 03.06.2014 19:47 # +3
bormand 03.06.2014 19:56 # +1
roman-kashitsyn 03.06.2014 19:58 # +5
bormand 03.06.2014 22:39 # +1
Да вполне читабельный. Жопа в том, что в рантайме подобный трейс для пойманного исключения не получить ;( Для своих то можно, а вот для других библиотек - фиг.
- Покажи бектрейс исключения, пожалуйста.
- Только через мой труп!
3.14159265 03.06.2014 23:14 # 0
Elvenfighter 04.06.2014 01:07 # 0
laMer007 04.06.2014 01:20 # 0
bormand 04.06.2014 05:20 # 0
Ну и как выше пишет laMer007 - можно вставить try в main'е и обработать исключение самому.
laMer007 04.06.2014 07:06 # 0
bormand 04.06.2014 09:42 # 0
LispGovno 04.06.2014 10:57 # +1
bormand 04.06.2014 13:34 # 0
В крестах нет потоков.
Вечером почитаю, что на этот счет думает стандарт с++11. Но вроде бы не terminate.
LispGovno 04.06.2014 16:30 # 0
Доведи шутку до конца. А что там? Зеки?
3.14159265 06.06.2014 22:17 # 0
3.14159265 04.06.2014 14:08 # 0
std::abort?
bormand 04.06.2014 15:01 # 0
Таки std::terminate.
crastinus 28.06.2014 06:06 # 0
guest 28.06.2014 15:08 # −6
laMer007 04.06.2014 00:01 # 0
Vindicar 04.06.2014 10:41 # +2
roman-kashitsyn 04.06.2014 10:50 # +1
bormand 04.06.2014 10:52 # +2
Да - если исключение поймают где-то выше по стеку.
Нет - если никто не захочет его обрабатывать.
> волшебным образом не даст исключению всплыть
catch в 4й строке никогда не сработает. Так что весь код декоративный, не более того.
Vindicar 04.06.2014 10:57 # 0
И чего аффтару в try-catch не обернулось...
laMer007 06.06.2014 22:26 # 0
Lure Of Chaos 08.06.2014 20:02 # +2
laMer007 08.06.2014 21:12 # +1
Lure Of Chaos 09.06.2014 12:16 # +1
kegdan 09.06.2014 15:23 # 0
guest10 25.08.2021 03:20 # 0