Griff Zugriffsverletzung-Ausnahme in C++ Builder?

Ich versuche zu tun:

try{
    int * i = NULL;
    *i = 3;
}catch(Exception &Err){
    ShowMessage(Err.Message);
}

Ich aber, dass dieses fangen sollte Zugriffsverletzung Ausnahme, und Griff es durch die Anzeige einer Fehlermeldung.

Aber aus irgendeinem Grund bekomme ich einfach

Zugriffsverletzung

Meldung anstelle der vollen

Zugriffsverletzung XXX in Modul YYY. Schriftlich unter der Adresse ZZZ.

BTW ExceptObject() routine gibt NULL zurück, für einige seltsame Grund.

Was vermisse ich hier?

Sie sehen nur "den Zugang Vialotion", denn das ist der Weg, wie es funktionieren soll. Die RTL nicht speichern Sie die gesamte Ausnahme der Daten in den EAccessViolation Objekt erhält geworfen. Für ExceptObject(), Sie hat nicht gesagt, welche version von C++Builder, die Sie verwenden. ExceptObject() und ExceptAddr() bekannt sind, werden buggy in älteren Versionen von C++.

InformationsquelleAutor | 2009-06-05

Schreibe einen Kommentar