Exception externe EEFFACE

De RAD Studio
Aller à : navigation, rechercher

Remonter à Gestion des exceptions dans C++Builder

Exception externe EEFFACE est un message d'erreur qui apparaît lorsqu'une exception C++ n'est pas interceptée par les gestionnaires d'exception C++, et qu'elle est éventuellement gérée par les gestionnaires d'exception de Delphi.

EEFFACE.png

Cette erreur peut se produire dans une application Fiches VCL ou une application FireMonkey lorsque des exceptions C++ ne sont pas interceptées explicitement et sont perdues dans la VCL ou le framework FireMonkey. Ces frameworks possèdent des gestionnaires d'exception Delphi qui, par défaut, gèrent l'exception C++ et génèrent une exception externe EEFFACE.

Exemple

L'exemple suivant est une application Fiches VCL qui définit une classe d'exception C++ - CppException. L'application déclenche une CppException mais n'intercepte pas l'exception. Comme l'exception C++ n'est pas interceptée par un gestionnaire d'exception C++, le message d'erreur Exception externe EEFFACE est généré.

// ---------------------------------------------------------------------------
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);
}

Pour davantage d'informations sur ce problème, voir : http://www.audacia-software.de/en/bcb/external-exception-eefface.htm .

Voir aussi