Externe Exception EEFFACE
Nach oben zu Exception-Behandlung in C++Builder
Externe Exception EEFFACE ist eine Fehlermeldung, die angezeigt wird, wenn eine C++-Exception nicht von C++-Exception-Behandlungsroutinen abgefangen wird und die Exception schließlich von Delphi-Exception-Behandlungsroutinen behandelt wird.
Dieser Fehler kann in VCL-Formularanwendungen oder in FireMonkey-Anwendungen auftreten, wenn C++-Exceptions nicht explizit abgefangen und an das VCL- oder FireMonkey-Framework weitergegeben werden. Diese Frameworks verfügen über Delphi-Exception-Behandlungsroutinen, die standardmäßig C++-Exceptions behandeln und daher die external Exception EEFFACE erzeugen.
Beispiel
Das folgende Beispiel ist eine VCL-Formularanwendung, die die C++-Exception-Klasse CppException definiert. Die Anwendung löst eine CppException aus, fängt aber die Exception nicht ab. Weil die C++-Exception nicht von einer C++-Exception-Behandlungsroutine abgefangen wird, wird die Fehlermeldung Externe Exception EEFFACE erzeugt.
// ---------------------------------------------------------------------------
class CppException : public std::exception {
virtual const char* what() const throw() {
return "C++ exception message";
}
};
// ---------------------------------------------------------------------------
__fastcall TForm2::TForm2(TComponent* Owner) : TForm(Owner) {
}
// ---------------------------------------------------------------------------
int myfunction(int i) {
if (i == 0) {
throw new CppException();
}
return i - 1;
}
// ---------------------------------------------------------------------------
void __fastcall TForm2::Button1Click(TObject *Sender) {
myfunction(0);
}
Ausführlichere Informationen dazu finden Sie unter: http://www.audacia-software.de/de/bcb/external-exception-eefface.htm .