Como verificar falhas de alocação de memória com o novo operado

Recentemente, mudei a linguagem do meu projeto para usar C ++ de C. Com C, usei malloc e depois verifiquei se malloc foi bem-sucedido, mas com C ++, uso 'new' para alocar memória e gostaria de saber como você normalmente verificaria a falha de alocação de memóri

Na minha pesquisa no google, vi nothrow como o seguinte.

char *buf = new (nothrow)char[10];

Vi também o seguinte.

try{} catch(bad_alloc&) {}

Mas e quanto a seguir? Estou usando algumas rotinas da biblioteca chrome para usar ponteiros inteligente

or exemplo, eu tenho o código da seguinte maneir

scoped_array<char> buf(new char[MAX_BUF]);

É ótimo usar ponteiros inteligentes, mas não tenho certeza de como devo verificar se a alocação de memória foi bem-sucedida. Preciso dividir em duas instruções separadas com nothrow ou try / catch? Como você normalmente faz essas verificações em C +

Qualquer conselho será apreciad

questionAnswers(4)

yourAnswerToTheQuestion