2016-01-13 3 views
5

所有者/親プロシージャも終了するネストされたプロシージャの内部から終了する方法がありますか?ネストされたプロシージャとその所有者プロシージャを終了するExitメソッドがありますか?

procedure OwnerProc; 

    procedure NestedProc; 
    begin 
     // Do some code here 

     EXIT_ALL; {Call a method which will exit NestedProc and OwnerProc} 
    end; 

begin 
    NestedProc; 
end; 
+0

*例外*について知りたい。 – Roddy

+0

または単にプロシージャから関数に変更し、ブール値を戻します。結果が偽であるかどうかをチェックして、メインプロシージャを終了することができます –

+3

EXIT_ALLを文字通り取ると、 'Halt;'がそのジョブを実行します;) - 警告:例外的な状況でのみ使用します。 – mjn

答えて

10

1はまた、所有者/親手続きを終了するネストされたプロシージャ内から終了するために呼び出すことができます方法はありますか?

いいえありません。

例外を発生させ、外部関数でキャッチすることができます。しかし個人的には、私はそれをかなり醜いと考えています。内側の関数からブール値を返すのはおそらくより洗練されていて、内部関数がFalseを返した場合はexitを返すことになります。

+0

ああ、それに私を打ち負かす:-) –

+0

デビッドありがとう。私はブール値の結果の方法を使用しますが、ExitAllを実行する既存のメソッドが存在することを期待していました。 –

関連する問題