終了ハンドラは、実行中のスコープの終了を制御するために使用します。実行中のスコープは、その外側のスコープまたはプロセスでフォルトが発生した場合に終了します。
スコープまたはプロセスの中でフォルトがスローされると、そのスコープまたはプロセスに関連付けられているフォルトハンドラが実行されますが、その前にそのスコープまたはプロセスの中で実行中のアクティビティーをすべて終了する必要があります。フォルトが発生したスコープまたはプロセスの中にまだ実行中のスコープがある場合、それらも終了する必要があります。スコープの終了とは、その中のアクティビティーを終了し、スコープに関連付けられている終了ハンドラを実行することです。
スコープは正常に実行されているか、補償ハンドラまたは終了ハンドラを実行している場合にのみ終了できます。完了したスコープ、フォルトが発生したスコープ、またはフォルトハンドラを実行中のスコープは終了できません。
終了ハンドラは、スコープが終了した場合に実行されるアクティビティーのコンテナです。スコープ 1 つにつき終了ハンドラを 1 つ追加できます。
スコープの終了ハンドラの中でフォルトが発生した場合、そのフォルトは外側のスコープに反映されません。
終了ハンドラをスコープ要素またはプロセス要素に追加するには、次の手順に従います。