インターフェース TryCatchFinally
- すべての既知の実装クラス:
LoopTagSupport
public interface TryCatchFinally
リソースを管理するための追加のフックを必要とする Tag、IterationTag、BodyTag タグハンドラーの補助インターフェース。このインターフェースは、doCatch(Throwable) と doFinally() という 2 つの新しいメソッドを提供します。プロトタイプの呼び出しは次のとおりです。
h = get a Tag(); // get a tag handler, perhaps from pool h.setPageContext(pc); // initialize as desired h.setParent(null); h.setFoo("foo"); // tag invocation protocol; see Tag.java try { doStartTag()... .... doEndTag()... } catch (Throwable t) { // react to exceptional condition h.doCatch(t); } finally { // restore data invariants and release per-invocation resources h.doFinally(); } ... other invocations perhaps with some new setters ... h.release(); // release long-term resources
メソッドのサマリー
すべてのメソッド インスタンスメソッド 抽象メソッド 修飾子と型 メソッド 説明 void
doCatch(ThrowableSE t)
タグ内または以下のメソッドのいずれかで BODY を評価しているときに Throwable が発生した場合に呼び出されます: Tag.doStartTag()、Tag.doEndTag()、IterationTag.doAfterBody() および BodyTag.doInitBody()。void
doFinally()
タグ、IterationTag、BodyTag を実装するクラスに対して、doEndTag() の後にすべてのケースで呼び出されます。
メソッドの詳細
doCatch
void doCatch(ThrowableSE t) throws ThrowableSE
タグ内または以下のメソッドのいずれかで BODY を評価しているときに Throwable が発生した場合に呼び出されます: Tag.doStartTag()、Tag.doEndTag()、IterationTag.doAfterBody() および BodyTag.doInitBody()。Throwable が setter メソッドの 1 つ中に発生した場合、このメソッドは呼び出されません。
このメソッドは、ネストチェーンの上位に伝搬される例外(同じまたは新しいもの)をスローする場合があります。例外がスローされると、doFinally() が呼び出されます。
このメソッドは、例外的な状態に応答するために使用することを目的としています。
- パラメーター:
t
- このタグをナビゲートするスロー可能な例外。- 例外:
ThrowableSE
- 例外がネストチェーンのさらに上に再スローされる場合。
doFinally
void doFinally()
タグ、IterationTag、BodyTag を実装するクラスに対して、doEndTag() の後にすべてのケースで呼び出されます。このメソッドは、タグの BODY または次のメソッドのいずれかで例外が発生した場合でも呼び出されます: Tag.doStartTag()、Tag.doEndTag()、IterationTag.doAfterBody() および BodyTag.doInitBody()。Throwable が setter メソッドの 1 つ中に発生した場合、このメソッドは呼び出されません。
このメソッドは例外をスローするべきではありません。
このメソッドは、呼び出しごとのデータ整合性とリソース管理アクションを維持することを目的としています。