Warum werden Ausnahmen in C ++ nicht vom Compiler geprüft?

C ++ bietet eine Syntax für geprüfte Ausnahmen, zum Beispiel:

<code>void G() throw(Exception);
void f() throw();
</code>

Der Visual C ++ - Compiler überprüft sie jedoch nicht. Das Throw Flag wird einfach ignoriert. Meiner Meinung nach macht dies die Ausnahmefunktion unbrauchbar. Meine Frage lautet also:Gibt es eine Möglichkeit, den Compiler zu überprüfen, ob Ausnahmen richtig abgefangen / erneut ausgelöst werden? Zum Beispiel ein Visual C ++ - Plugin oder ein anderer C ++ - Compiler.

PS. Ich möchte, dass der Compiler prüft, ob Ausnahmen korrekt abgefangen werden. Andernfalls müssen Sie jeden einzelnen Funktionsaufruf abfangen.selbst wenn sie ausdrücklich angeben, werden sie nichts werfen.

Aktualisieren: Der Visual C ++ - Compiler zeigt eine Warnung an, wenn eine mit throw () gekennzeichnete Funktion ausgelöst wird. Das ist großartig, aber leider wird die Warnung nicht angezeigt, wenn Sie eine Subroutine aufrufen, die möglicherweise ausgelöst wird. Zum Beispiel:

<code>void f() throw(int) { throw int(13); }
void h() throw() { g(); } //no warning here!
</code>

Antworten auf die Frage(6)

Ihre Antwort auf die Frage