javax.servlet.jsp.tagext
Интерфейс TryCatchFinally


public abstract interface TryCatchFinally

Вспомогательный интерфейс для обработчиков тэгов  с интерфейсом Tag, IterationTag или BodyTag, которым нужны дополнительные возможности для обслуживания ресурсов.

Этот интерфейс предоставляет два новых метода: doCatch(Throwable) и 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(); } ... другие вызовы, возможно, с новыми setter'ами ... h.release(); // освобождение ресурсов длительного пользования


Метод. Резюме.
 void doCatch (java.lang.Throwable t)
          Вызывается. если возникает Throwable в процессе обсчёта BODY внутри тэга или в любом из следующих методов: Tag.doStartTag(), Tag.doEndTag(), IterationTag.doAfterBody() и BodyTag.doInitBody().
 void doFinally ()
          Всегда вызывается после doEndTag() для любого класса, реализующего Tag, IterationTag или BodyTag.
 

Метод. Детали.

doCatch

public void doCatch(java.lang.Throwable t) throws java.lang.Throwable
Вызывается. если возникает Throwable в процессе обсчёта BODY внутри тэга или в любом из следующих методов: Tag.doStartTag(), Tag.doEndTag(), IterationTag.doAfterBody() и BodyTag.doInitBody().

Этот метод не вызывается, если Throwable возникает в действия одного из setter-методов.

Этот метод может вызывать исключение (то же самое или новое), которое будет передано затем во вложенную цепь. Если исключение отловлено, вызывается doFinally().

Этот метод предназначен для использования в ответ на возникновение исключительного условия.

Параметры:
t - отлавливаемое исключение, перемещающееся по данному тэгу.

doFinally

public void doFinally()
Всегда вызывается после doEndTag() для любого класса, реализующего Tag, IterationTag или BodyTag. Этот метод вызывается, даже если исключение возникает в BODY тэга или в одном из следующих методов: Tag.doStartTag(), Tag.doEndTag(), IterationTag.doAfterBody() и BodyTag.doInitBody().

Этот метод не вызывается, если Throwable возникает в действия одного из setter-методов.

Этот метод не должен вызывать Exception.

Этот метод предназначен для обслуживания целостности вызываемых данных и акций по обслуживанию ресурсов.