<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<body link="#355491" alink="#4262a1" vlink="#355491" style="background: #e2e2e2; margin: 0; padding: 20px;">
<div>
        <table cellpadding="0" bgcolor="#FFFFFF" border="0" cellspacing="0" style="border: 1px solid #dadada; margin-bottom: 30px; width: 100%; -moz-border-radius: 6px; -webkit-border-radius: 6px;">
                <tbody>
                        <tr>
                                <td>
                                        <table border="0" cellpadding="0" cellspacing="0" bgcolor="#FFFFFF" style="border: solid 2px #ccc; background: #dadada; width: 100%; -moz-border-radius: 6px; -webkit-border-radius: 6px;">
                                                <tbody>
                                                        <tr>
                                                                <td bgcolor="#000000" valign="middle" height="58px" style="border-bottom: 1px solid #ccc; padding: 20px; -moz-border-radius-topleft: 3px; -moz-border-radius-topright: 3px; -webkit-border-top-right-radius: 5px; -webkit-border-top-left-radius: 5px;">
                                                                        <h1 style="color: #333333; font: bold 22px Arial, Helvetica, sans-serif; margin: 0; display: block !important;">
                                                                        <!-- To have a header image/logo replace the name below with your img tag -->
                                                                        <!-- Email clients will render the images when the message is read so any image -->
                                                                        <!-- must be made available on a public server, so that all recipients can load the image. -->
                                                                        <a href="https://community.jboss.org/index.jspa" style="text-decoration: none; color: #E1E1E1">JBoss Community</a></h1>
                                                                </td>
                                                        </tr>
                                                        <tr>
                                                                <td bgcolor="#FFFFFF" style="font: normal 12px Arial, Helvetica, sans-serif; color:#333333; padding: 20px; -moz-border-radius-bottomleft: 4px; -moz-border-radius-bottomright: 4px; -webkit-border-bottom-right-radius: 5px; -webkit-border-bottom-left-radius: 5px;"><h3 style="margin: 10px 0 5px; font-size: 17px; font-weight: normal;">
try-catch-finally control flow
</h3>
<span style="margin-bottom: 10px;">
created by <a href="https://community.jboss.org/people/aloubyansky">Alexey Loubyansky</a> in <i>JBoss AS 7 Development</i> - <a href="https://community.jboss.org/docs/DOC-18731">View the full document</a>
</span>
<hr style="margin: 20px 0; border: none; background-color: #dadada; height: 1px;">
<div class="jive-rendered-content"><p>The CLI implements a simplified analogue of Java's try-catch-finally control flow. It consists of three sets of operations and commands (with each set being a batch) corresponding to the try, catch and finally blocks. Both catch and finally blocks are optional but at least one of them should be present. Unlike in Java, only one catch block can be specified.</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>The control flow begins with execution of the try batch. If the try batch finished successfully (i.e. the outcome of the operation was success), then the catch batch is skipped and the finally batch is executed. If the try batch failed (i.e. the outcome of the operation was failure, in case of, e.g., a <em>java.io.IOException</em> the whole try-catch-finally control flow will terminate immediately) then the catch batch (if it is present) will be executed. The finally batch (if it is present) will always execute at the end of the control flow no matter whether the try and catch batches succeeded or failed to execute.</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>There are four commands that define the try-catch-finally control flow: <strong>try</strong>, <strong>catch</strong>,<strong> finally</strong> and <strong>end-try</strong>.</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p><strong>try</strong> command starts the try batch. The try batch continues until one of <strong>catch</strong> or<strong> finally</strong> command is met.</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p><strong>catch</strong> command marks the end of the try batch (the try batch is then held back) and starts the catch batch.</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p><strong>finally</strong> command marks the end of the catch batch (if the current batch is a catch batch) or the try batch (if the catch batch was not specified) and starts the finally batch.</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p><strong>end-try</strong> is the command that ends either catch or finally batch (depending on which one was the last one) and runs the try-catch-finally control flow.</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>Here is an example that either creates or re-creates a datasource and enables it:</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><pre class="jive-pre"><code class="jive-code">
try
  /subsystem=datasources/data-source=myds:add(connection-url=xxx,jndi-name=java:/myds,driver-name=h2)
catch
  /subsystem=datasources/data-source=myds:remove
  /subsystem=datasources/data-source=myds:add(connection-url=xxx,jndi-name=java:/myds,driver-name=h2)
finally
  /subsystem=datasources/data-source=myds:enable
end-try
</code></pre><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p></div>
<div style="background-color: #f4f4f4; padding: 10px; margin-top: 20px;">
<p style="margin: 0;">Comment by <a href="https://community.jboss.org/docs/DOC-18731">going to Community</a></p>
        <p style="margin: 0;">Create a new document in JBoss AS 7 Development at <a href="https://community.jboss.org/choose-container!input.jspa?contentType=102&containerType=14&container=2225">Community</a></p>
</div></td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</div>
</body>
</html>