try
{
/* something */
}
catch( AError, BError $e )
{
handler1( $e )
}
catch( Exception $e )
{
handler2( $e )
}
< /code>
Есть ли способ сделать это? Или мне нужно поймать их отдельно? < /P>
AError
и berror Имеют общий базовый класс, но они также делятся им с другими типами, которые я хотел бы пройти в Handler2 , поэтому я не могу просто поймать базовый класс.
Есть ли способ сделать это? Или мне нужно поймать их отдельно? < /P>
AError[/code] и berror Имеют общий базовый класс, но они также делятся им с другими типами, которые я хотел бы пройти в Handler2 , поэтому я не могу просто поймать базовый класс.
У кого -нибудь есть представление о том, как класс исключений инициализируется в блоке Catch.
Пример:
try
{
any code .....
}
catch (Exception ex)
{
throw ex.tostring();
}
В приведенном выше примере нам не нужно явно инициализировать исключение...
В настоящее время я исследую сценарий сбоя в Windows, вызванный выполнением доходности BOOST внутри блока C ++ . Вот минимальный воспроизводимый пример, который приводит к сбою в Windows (по крайней мере, для меня).
Интересно, есть ли такое...
Блок Finally выполняется непосредственно перед оператором return в блоке try, как показано в примере ниже — возвращает False вместо True:
>>> def bool_return():
... try:
... return True
... finally:
... return False
...
>>> bool_return()
False...
Моя цель состоит в том, чтобы выделить память для двух различных объектов, давайте назовем их obj1 и obj2 в одном блоке памяти. Важным аспектом является то, что obj1 и obj2 может быть разных типов (например, int и float , или std :: complex и т....