Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[18.216.239.211] |
|
Сообщ.
#1
,
|
|
|
Всем привет!
Возник небольшой уточняющий вопрос по исключениям. Когда то давно наткнулся на такой код: http://ideone.com/nyHuUZ #include <iostream> void SomeFunc() try { { throw "Some error"; } } catch(const char* error) { std::cout << "Exception: \'" << error << "\' is occured in " << __FUNCTION__ << std::endl; } int main() { SomeFunc(); // your code goes here return 0; } Помню мне объясняли что такой синтаксис помогает ловить исключения в конструкторах при множественном наследовании. Так вот вопрос - как называются такого рода исключения? И можно ли их так же использовать при такого рода конструкциях? bool SomeFunc() try { { return SomeExpr; } } catch(const char* error) { std::cout << "Exception: \'" << error << "\' is occured in " << __FUNCTION__ << std::endl; } Или они тут не к месту? |
Сообщ.
#2
,
|
|
|
Это называется function-try-block. И это не исключения, а именно способ оформления try-выражения. Ты можешь использовать этот синтаксис везде, где допустимо использовать обычное составное выражение.
|
Сообщ.
#3
,
|
|
|
Ясно. Спасибо.
|
Сообщ.
#5
,
|
|
|
Да, паходу я об этом тоже узнал из твоей темы. Просто подзабыл как это называется чтоб погуглить
|