Externe Exception EEFFACE

Aus RAD Studio
Wechseln zu: Navigation, Suche

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.

EEFFACE.png

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 .

Siehe auch