3 Stimmen

Behandlung von Ausnahmen in C++/CLI

In unverwaltetem C++ ist es üblich, Ausnahmen immer per Const-Referenz abzufangen.

Ich bin nicht so erfahren mit verwaltetem C++ (obwohl ich die Unterschiede in den Griff bekomme), aber ich frage mich, was ist der beste Weg, um Ausnahmen hier zu fangen? Würden Ausnahmen jemals per Handle abgefangen werden, d.h.

try
{
}
catch( ExceptionType^ ex )
{
}

und wenn ja, gäbe es irgendwelche Vorbehalte?

4voto

Steve Townsend Punkte 52288

Für die Behandlung von Ausnahmen in verwaltetem Code, ja, das ist der Weg zu tun.

Wenn Sie jedoch Managed C++ verwenden, nehme ich an, dass Sie die Notwendigkeit haben, mit nativem Code zu interagieren (oder sind Sie nur ein Masochist? Entschuldigung, ich bin kein Fan von Managed C++), in diesem Fall sind die Dinge komplizierter. Siehe aquí für einige Hintergrundinformationen zu Problemen bei der Behandlung von Ausnahmen im gemischten Modus.

4voto

Puppy Punkte 141483

Wenn Sie eine verwaltete Ausnahme auslösen, dann gibt es keine Möglichkeit, sie abzufangen, außer durch ein Garbage-Collected-Handle. Verwalteter Code hat viel strengere Regeln darüber, was geworfen werden kann und was nicht, im Gegensatz zu C++.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X