C28105

Avertissement C28105 : Ressource disjointe en raison d'une exception

La ressource spécifiée n'est pas libérée lorsqu'une exception est levée.L'instruction spécifiée par le chemin d'accès peut lever une exception.Cet avertissement est semblable à l'avertissement C28103, sauf que dans ce cas une exception est sous-entendue.

Exemple

L'exemple de code suivant génère cet avertissement :

res = KeSaveFloatingPointState(buffer);

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

delete[] p2;
FreeResource(Resource)

L'exemple de code suivant permet d'éviter cet avertissement :

res = AllocateResource(Resource);
char *p2;

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