C28105

C28105 de aviso: Recurso de escape por causa de uma exceção

O recurso especificado não é liberado quando uma exceção é gerada.A instrução especificada pelo caminho pode lançar uma exceção.Esse erro é semelhante ao aviso C28103, exceto que neste caso uma exceção é involvida.

Exemplo

O exemplo de código gera este aviso:

res = KeSaveFloatingPointState(buffer);

res = AllocateResource(Resource);
char *p2 = new char[10]; // could throw

delete[] p2;
FreeResource(Resource)

O exemplo de código a seguir evita este aviso:

res = AllocateResource(Resource);
char *p2;

try {
    p2 = new char[10];
} catch (std::bad_alloc *e) {
    // just handle the throw
    ;
}
FreeResource(Resource)