blob: d30ac62c1f6ad1bf0443608de707ad2360be9038 [file] [log] [blame]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<title>TryCatchFinally</title>
<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
<script type="text/javascript" src="../../../../script.js"></script>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="TryCatchFinally";
}
}
catch(err) {
}
//-->
var methods = {"i0":6,"i1":6};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../index-all.html">Index</a></li>
<li><a href="../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../javax/servlet/jsp/tagext/TagVariableInfo.html" title="class in javax.servlet.jsp.tagext"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../javax/servlet/jsp/tagext/ValidationMessage.html" title="class in javax.servlet.jsp.tagext"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../index.html?javax/servlet/jsp/tagext/TryCatchFinally.html" target="_top">Frames</a></li>
<li><a href="TryCatchFinally.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle">javax.servlet.jsp.tagext</div>
<h2 title="Interface TryCatchFinally" class="title">Interface TryCatchFinally</h2>
</div>
<div class="contentContainer">
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Known Implementing Classes:</dt>
<dd><a href="../../../../org/apache/taglibs/standard/tag/common/core/CatchTag.html" title="class in org.apache.taglibs.standard.tag.common.core">CatchTag</a>, <a href="../../../../org/apache/taglibs/standard/tag/common/core/ForEachSupport.html" title="class in org.apache.taglibs.standard.tag.common.core">ForEachSupport</a>, <a href="../../../../org/apache/taglibs/standard/tag/common/xml/ForEachTag.html" title="class in org.apache.taglibs.standard.tag.common.xml">ForEachTag</a>, <a href="../../../../org/apache/taglibs/standard/tag/rt/core/ForEachTag.html" title="class in org.apache.taglibs.standard.tag.rt.core">ForEachTag</a>, <a href="../../../../org/apache/taglibs/standard/tag/el/core/ForEachTag.html" title="class in org.apache.taglibs.standard.tag.el.core">ForEachTag</a>, <a href="../../../../org/apache/taglibs/standard/tag/common/core/ForTokensSupport.html" title="class in org.apache.taglibs.standard.tag.common.core">ForTokensSupport</a>, <a href="../../../../org/apache/taglibs/standard/tag/rt/core/ForTokensTag.html" title="class in org.apache.taglibs.standard.tag.rt.core">ForTokensTag</a>, <a href="../../../../org/apache/taglibs/standard/tag/el/core/ForTokensTag.html" title="class in org.apache.taglibs.standard.tag.el.core">ForTokensTag</a>, <a href="../../../../org/apache/taglibs/standard/tag/common/core/ImportSupport.html" title="class in org.apache.taglibs.standard.tag.common.core">ImportSupport</a>, <a href="../../../../org/apache/taglibs/standard/tag/rt/core/ImportTag.html" title="class in org.apache.taglibs.standard.tag.rt.core">ImportTag</a>, <a href="../../../../org/apache/taglibs/standard/tag/el/core/ImportTag.html" title="class in org.apache.taglibs.standard.tag.el.core">ImportTag</a>, <a href="../../../../javax/servlet/jsp/jstl/core/LoopTagSupport.html" title="class in javax.servlet.jsp.jstl.core">LoopTagSupport</a>, <a href="../../../../org/apache/taglibs/standard/tag/rt/sql/QueryTag.html" title="class in org.apache.taglibs.standard.tag.rt.sql">QueryTag</a>, <a href="../../../../org/apache/taglibs/standard/tag/el/sql/QueryTag.html" title="class in org.apache.taglibs.standard.tag.el.sql">QueryTag</a>, <a href="../../../../org/apache/taglibs/standard/tag/common/sql/QueryTagSupport.html" title="class in org.apache.taglibs.standard.tag.common.sql">QueryTagSupport</a>, <a href="../../../../org/apache/taglibs/standard/tag/rt/sql/TransactionTag.html" title="class in org.apache.taglibs.standard.tag.rt.sql">TransactionTag</a>, <a href="../../../../org/apache/taglibs/standard/tag/el/sql/TransactionTag.html" title="class in org.apache.taglibs.standard.tag.el.sql">TransactionTag</a>, <a href="../../../../org/apache/taglibs/standard/tag/common/sql/TransactionTagSupport.html" title="class in org.apache.taglibs.standard.tag.common.sql">TransactionTagSupport</a>, <a href="../../../../org/apache/taglibs/standard/tag/rt/sql/UpdateTag.html" title="class in org.apache.taglibs.standard.tag.rt.sql">UpdateTag</a>, <a href="../../../../org/apache/taglibs/standard/tag/el/sql/UpdateTag.html" title="class in org.apache.taglibs.standard.tag.el.sql">UpdateTag</a>, <a href="../../../../org/apache/taglibs/standard/tag/common/sql/UpdateTagSupport.html" title="class in org.apache.taglibs.standard.tag.common.sql">UpdateTagSupport</a></dd>
</dl>
<hr>
<br>
<pre>public interface <span class="typeNameLabel">TryCatchFinally</span></pre>
<div class="block">The auxiliary interface of a Tag, IterationTag or BodyTag tag handler that wants additional hooks for managing
resources.
<p>
This interface provides two new methods: doCatch(Throwable) and doFinally(). The prototypical invocation is as
follows:
<pre>
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
</pre></div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method.summary">
<!-- -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../javax/servlet/jsp/tagext/TryCatchFinally.html#doCatch-java.lang.Throwable-">doCatch</a></span>(java.lang.Throwable&nbsp;t)</code>
<div class="block">Invoked if a Throwable occurs while evaluating the BODY inside a tag or in any of the following methods:
Tag.doStartTag(), Tag.doEndTag(), IterationTag.doAfterBody() and BodyTag.doInitBody().</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../javax/servlet/jsp/tagext/TryCatchFinally.html#doFinally--">doFinally</a></span>()</code>
<div class="block">Invoked in all cases after doEndTag() for any class implementing Tag, IterationTag or BodyTag.</div>
</td>
</tr>
</table>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a name="doCatch-java.lang.Throwable-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>doCatch</h4>
<pre>void&nbsp;doCatch(java.lang.Throwable&nbsp;t)
throws java.lang.Throwable</pre>
<div class="block">Invoked if a Throwable occurs while evaluating the BODY inside a tag or in any of the following methods:
Tag.doStartTag(), Tag.doEndTag(), IterationTag.doAfterBody() and BodyTag.doInitBody().
<p>
This method is not invoked if the Throwable occurs during one of the setter methods.
<p>
This method may throw an exception (the same or a new one) that will be propagated further up the nest chain. If
an exception is thrown, doFinally() will be invoked.
<p>
This method is intended to be used to respond to an exceptional condition.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>t</code> - The throwable exception navigating through this tag.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.Throwable</code> - if the exception is to be rethrown further up the nest chain.</dd>
</dl>
</li>
</ul>
<a name="doFinally--">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>doFinally</h4>
<pre>void&nbsp;doFinally()</pre>
<div class="block">Invoked in all cases after doEndTag() for any class implementing Tag, IterationTag or BodyTag. This method is
invoked even if an exception has occurred in the BODY of the tag, or in any of the following methods:
Tag.doStartTag(), Tag.doEndTag(), IterationTag.doAfterBody() and BodyTag.doInitBody().
<p>
This method is not invoked if the Throwable occurs during one of the setter methods.
<p>
This method should not throw an Exception.
<p>
This method is intended to maintain per-invocation data integrity and resource management actions.</div>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<!-- ========= END OF CLASS DATA ========= -->
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../index-all.html">Index</a></li>
<li><a href="../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../javax/servlet/jsp/tagext/TagVariableInfo.html" title="class in javax.servlet.jsp.tagext"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../javax/servlet/jsp/tagext/ValidationMessage.html" title="class in javax.servlet.jsp.tagext"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../index.html?javax/servlet/jsp/tagext/TryCatchFinally.html" target="_top">Frames</a></li>
<li><a href="TryCatchFinally.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</body>
</html>