Можно ли вручную выдавать std :: bad_alloc?

Смотрите на эта страница (раздел "Dependency Version Ranges"). То, что Вы могли бы хотеть сделать, является чем-то как

[1.2.3,)

, Эти диапазоны версии реализованы в Maven2.

23
задан skaffman 5 December 2010 в 10:59
поделиться

1 ответ

Другим примером является использование факта, что регистратор также подвергается RAII:

CEngineLayer::CEngineLayer( )
 {
   CLogger logger(this); // Could throw, but no harm if it does.
   logger.SetIntent("Creating the video layer!");
   videoLayer = new CVideoLayer(this);
   logger.SetSucceeded(); // resets intent, so CLogger::~CLogger() is silent.
 }

Это масштабируется чисто, если есть несколько шагов. Вы просто звоните .SetIntent несколько раз. Обычно вы записываете только последнюю строку намерений в CLogger::~CLogger(), но для дополнительной подробной записи в журнал вы можете записать все намерения.

Кстати, в вашем createEngineLayer вы можете захотеть catch(...). Что если регистратор выбрасывает DiskFullException?

1
ответ дан 29 November 2019 в 01:05
поделиться
Другие вопросы по тегам:

Похожие вопросы: