Beendigungsbehandlung
Ein Beendigungshandler stellt sicher, dass immer dann ein bestimmter Codeblock ausgeführt wird, wenn der Ablauf der Steuerung einen bestimmten kontrollierten Codekörper verlässt. Ein Beendigungshandler besteht aus den folgenden Elementen.
- Ein beschützter Code
- Ein Block von Beendigungscode, der ausgeführt werden soll, wenn der Ablauf der Steuerung den beschützten Text verlässt.
Beendigungshandler werden in sprachspezifischer Syntax deklariert. Mithilfe des Microsoft C/C++-Optimierungscompilers werden sie mit _ _ try und schließlich _ _ implementiert. Weitere Informationen finden Sie unter Handlersyntax.
Der bewaiste Code kann ein Codeblock, ein Satz geschachtelter Blöcke oder eine gesamte Prozedur oder Funktion sein. Wenn der schutzbeschützte Text ausgeführt wird, wird der Beendigungscodeblock ausgeführt. Die einzige Ausnahme ist, wenn der Thread während der Ausführung des geschützten Textkörpers beendet wird (z. B. wenn die ExitThread- oder ExitProcess-Funktion innerhalb des wächter Textkörpers aufgerufen wird).
Der Beendigungsblock wird ausgeführt, wenn der Ablauf der Steuerung den wächter Text verlässt, unabhängig davon, ob der schutzbehaftete Text normal oder ungewöhnlich beendet wurde. Der beschützte Text wird als normal beendet betrachtet, wenn die letzte Anweisung im -Block ausgeführt wird und die Steuerung sequenziell in den Beendigungsblock übergeht. Eine ungewöhnliche Beendigung tritt auf, wenn der Ablauf der Steuerung den schutzbehafteten Text aufgrund einer Ausnahme verlässt oder aufgrund einer Steuerungs-Anweisung wie rückgabe , goto, break oder continue. Die AbnormalTermination-Funktion kann innerhalb des Beendigungsblocks aufgerufen werden, um zu bestimmen, ob der bewachungsbehaftete Text normal beendet wurde.