Unwind-protect
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2021/05/23 05:10 UTC 版)
「GNU Octave」の記事における「Unwind-protect」の解説
OctaveではLISPの 'unwind_protect'を実装しており、それによる例外処理を記述することができる。unwind_protectブロックはOctaveでは以下のように書かれる。 unwind_protect bodyunwind_protect_cleanup cleanupend_unwind_protect Octaveでは一般的に、ブロックの終端は 'end' キーワードで示される(MATLAB と互換である)が、'end_block' でも示すことができる。'unwind_protect' ブロックでも 'end' に加えて 'end_unwind_protect' を使うことができる。 unwind_protectのcleanup部は、常に実行される。body部で例外が発生した場合は、その時点でcleanupが実行され、 'unwind_protect' ブロックの残りの部分が評価されることはない。 Octaveでは他の例外処理も使える(MATLAB との互換性を持たせるため)。 try bodycatch exception_handlingend この 'try' と 'catch' を使う例では 'unwind_protect' ブロックと違い、例外がbody部で発生したときにのみexception_handlingが実行される。またexception_handlingの実行後は、 'rethrow( lasterror )' 文がexception_handling部に記述されていない限りは、'try' ブロックの例外発生場所以降の部分が評価されることはない。
※この「Unwind-protect」の解説は、「GNU Octave」の解説の一部です。
「Unwind-protect」を含む「GNU Octave」の記事については、「GNU Octave」の概要を参照ください。
- Unwind-protectのページへのリンク