Udostępnij za pośrednictwem


C28105

Ostrzeżenie C28105: wyciek zasobów z powodu wyjątku

Określony zasób nie był zwolniony, gdy zgłoszony został wyjątek.Instrukcja określona w ścieżce mogła zgłosić wyjątek.Ostrzeżenie to jest podobne do ostrzeżenia C28103, z wyjątkiem tego, że w tym przypadku uwzględniony jest wyjątek.

Przykład

Poniższy kod przykładowy generuje to ostrzeżenie:

res = KeSaveFloatingPointState(buffer);

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

delete[] p2;
FreeResource(Resource)

Poniższy kod przykładowy pozwala uniknąć tego ostrzeżenia:

res = AllocateResource(Resource);
char *p2;

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