RpcExcept-Makro (rpc.h)
Die RpcExcept-Anweisung bietet eine strukturierte Ausnahmebehandlung für RPC-Anwendungen.
Windows Vista und höhere Versionen von Windows: RpcExceptionFilter wird für die strukturierte Ausnahmebehandlung für die häufigsten Ausnahmen als Alternative zu benutzerdefinierten Filtern mit RpcExcept empfohlen. Benutzerdefinierte Ausnahmefilter müssen jedoch weiterhin RpcExcept verwenden.
Syntax
void RpcExcept(
expr
);
Parameter
expr
Ausdruck, der ausgewertet wird, wenn eine Ausnahme auftritt. Wenn der Ausdruck zu einem wert ohne Zero ausgewertet wird, werden die Ausnahmeanweisungen ausgeführt. Wenn der Ausdruck auf einen Nullwert ausgewertet wird, wird das Entladen mit der nächsten RpcTryExcept- oder RpcTryFinally-Funktion fortgesetzt.
Rückgabewert
Keine
Bemerkungen
Wenn keine Ausnahme auftritt, werden der Ausdruck und die Ausnahmeanweisungen übersprungen, und die Ausführung wird mit der Anweisung nach der RpcEndExcept-Anweisung fortgesetzt.
Die zusammengesetzte Anweisung nach der RpcTryExcept-Klausel ist der Textkörper oder der überwachte Abschnitt. Die zusammengesetzte Anweisung nach der RpcExcept-Klausel ist der Ausnahmehandler. Der Handler gibt eine Reihe von Aktionen an, die abgerufen werden, wenn eine Ausnahme während der Ausführung des Texts des geschützten Bereichs ausgelöst wird. Die Ausführung erfolgt folgendermaßen:
- Der geschützte Bereich wird ausgeführt.
- Wenn während der Ausführung des überwachten Abschnitts keine Ausnahme auftritt, wird die Ausführung an der Anweisung nach der RpcEndExcept-Klausel fortgesetzt.
- Wenn während der Ausführung des überwachten Abschnitts oder in einer Routine, die der überwachte Abschnitt aufruft, eine Ausnahme auftritt, wird der __except Ausdruck ausgewertet, und der Wert bestimmt, wie die Ausnahme behandelt wird. Es gibt drei Werte:
- EXCEPTION_CONTINUE_EXECUTION (–1) Ausnahme wird geschlossen. Fortsetzen der Ausführung an der Stelle, an der die Ausnahme aufgetreten ist.
- EXCEPTION_CONTINUE_SEARCH (0) Ausnahme wird nicht erkannt. Fahren Sie fort, im Stapel nach einem Handler zu suchen, zuerst nach enthaltenen try-except-Anweisungen, dann nach Handlern mit der nächst höheren Priorität.
- Ausnahme wurde erkannt. Übertragen Sie die Steuerung an den Ausnahmehandler, indem Sie die __except zusammengesetzte Anweisung ausführen, und setzen Sie dann die Ausführung nach dem __except-Block fort.
RpcExceptionCode kann sowohl in Ausdrucks- als auch in Ausnahmeanweisungen verwendet werden, um zu bestimmen, welche Ausnahme aufgetreten ist.
Es gelten folgende Einschränkungen:
- Das Springen (durch einen Goto) in bewachte Anweisungen ist nicht zulässig.
- Das Springen (über einen Goto) in Ausnahmeanweisungen ist nicht zulässig.
- Das Zurückgeben oder Springen (über einen Goto) von bewachten Anweisungen ist nicht zulässig.
- Das Zurückgeben oder Springen (über einen Goto) von Ausnahmeanweisungen ist nicht zulässig.
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Windows 2000 Professional [nur Desktop-Apps] |
Unterstützte Mindestversion (Server) | Windows 2000 Server [nur Desktop-Apps] |
Zielplattform | Windows |
Kopfzeile | rpc.h |