javax.servlet.jsp.tagext
インタフェース TryCatchFinally


public interface TryCatchFinally

Tag,IterationTag,BodyTagハンドラでリソース管理のための追加フックが必要なときのための拡張インターフェイスです。

このインターフェイスは2つのメソッドが追加されています。 doCatch(Torowable)とdoFinally()です。
以下のような形で呼び出されます。

 h = get a Tag();  // タグハンドラを取得します。大体プールからになります。

 h.setPageContext(pc);  // 必要な初期化をします。
                        
 h.setParent(null);
 h.setFoo("foo");
 
 // タグの呼び出しプロトコルです。Tag.javaを見てください。
 try {
   doStartTag()...
   ....
   doEndTag()...
 } catch (Throwable t) {
   // 例外時の処理
   h.doCatch(t);
 } finally {
   // 不正データの復旧と呼び出し毎のリソースの解放
   h.doFinally();
 }
 
 ... いくつかの新しいセッターなどの呼び出し
 ...
 h.release();  // 長期リソースの解放
               
 


メソッドの概要
 void doCatch(Throwable t)
          タグの中のボディ部の評価中、または Tag.doStartTag(), Tag.doEndTag(), IterationTag.doAfterBody(), BodyTag.doInitBody() のいずれものメソッドの中で、Throwableが投げられたときに呼び出されます。
 void doFinally()
          Tag,IterationTag,BodyTagを実装した全てのクラスの doEndTag()の後で呼び出されます。
 

メソッドの詳細

doCatch

public void doCatch(Throwable t)
             throws Throwable
タグの中のボディ部の評価中、または Tag.doStartTag(), Tag.doEndTag(), IterationTag.doAfterBody(), BodyTag.doInitBody() のいずれものメソッドの中で、Throwableが投げられたときに呼び出されます。

このメソッドはセッターメソッドの中でThrowableが起きた場合は呼び出されません。

このメソッドは上位のネストチェインに伝達させる例外を投げることができます。(同じものでも新規でも) 例外が投げられた後、doFinally()が呼び出されます。

このメソッドは例外処理に対処することを意図しています。

パラメータ:
t - このタグを通過してきたThrowableな例外
Throwable

doFinally

public void doFinally()
Tag,IterationTag,BodyTagを実装した全てのクラスの doEndTag()の後で呼び出されます。 このメソッドはタグのボディ部や Tag.doStartTag(), Tag.doEndTag(), IterationTag.doAfterBody() ,BodyTag.doInitBody()のすべてのメソッドで例外が発生した後でも呼び出されます。

このメソッドはセッターメソッドの中でThrowableが起きた場合は呼び出されません。

このメソッドからは例外を投げるべきではありません。 このメソッドは呼び出し毎のデータの整合性をとることとリソース管理の動作をさせることを意図しています。



このドキュメントは、Ja-Jakarta Project により翻訳されました。コメントがある場合は、jajakarta-report@jajakarta.good-day.netまでお願いします。

Copyright © 1999-2002 The Apache Software Foundation. All Rights Reserved.