<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<!--

 Licensed to the Apache Software Foundation (ASF) under one or more
 contributor license agreements.  See the NOTICE file distributed with
 this work for additional information regarding copyright ownership.
 The ASF licenses this file to You under the Apache License, Version 2.0
 (the "License"); you may not use this file except in compliance with
 the License.  You may obtain a copy of the License at

      http://www.apache.org/licenses/LICENSE-2.0

 Unless required by applicable law or agreed to in writing, software
 distributed under the License is distributed on an "AS IS" BASIS,
 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 See the License for the specific language governing permissions and
 limitations under the License.

--><html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>Apache log4cxx: Exception Class Reference</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.4.6 -->
<div class="tabs">
  <ul>
    <li><a href="main.html"><span>Main&nbsp;Page</span></a></li>
    <li><a href="modules.html"><span>Modules</span></a></li>
    <li><a href="namespaces.html"><span>Namespaces</span></a></li>
    <li id="current"><a href="classes.html"><span>Classes</span></a></li>
    <li><a href="files.html"><span>Files</span></a></li>
  </ul></div>
<div class="tabs">
  <ul>
    <li><a href="classes.html"><span>Alphabetical&nbsp;List</span></a></li>
    <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
    <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
    <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
  </ul></div>
<div class="nav">
<a class="el" href="namespacelog4cxx.html">log4cxx</a>::<a class="el" href="namespacelog4cxx_1_1helpers.html">helpers</a>::<a class="el" href="classlog4cxx_1_1helpers_1_1_exception.html">Exception</a></div>
<h1>Exception Class Reference</h1><!-- doxytag: class="log4cxx::helpers::Exception" -->Inherited by <a class="el" href="classlog4cxx_1_1db_1_1_s_q_l_exception.html">SQLException</a>, <a class="el" href="classlog4cxx_1_1helpers_1_1_class_not_found_exception.html">ClassNotFoundException</a>, <a class="el" href="classlog4cxx_1_1helpers_1_1_illegal_monitor_state_exception.html">IllegalMonitorStateException</a>, <a class="el" href="classlog4cxx_1_1helpers_1_1_illegal_state_exception.html">IllegalStateException</a>, <a class="el" href="classlog4cxx_1_1helpers_1_1_instantiation_exception.html">InstantiationException</a>, <a class="el" href="classlog4cxx_1_1helpers_1_1_interrupted_exception.html">InterruptedException</a>, <a class="el" href="classlog4cxx_1_1helpers_1_1_i_o_exception.html">IOException</a>, <a class="el" href="classlog4cxx_1_1helpers_1_1_missing_resource_exception.html">MissingResourceException</a>, <a class="el" href="classlog4cxx_1_1helpers_1_1_mutex_exception.html">MutexException</a>, <a class="el" href="classlog4cxx_1_1helpers_1_1_no_such_element_exception.html">NoSuchElementException</a>, <a class="el" href="classlog4cxx_1_1helpers_1_1_pool_exception.html">PoolException</a>, <a class="el" href="classlog4cxx_1_1helpers_1_1_runtime_exception.html">RuntimeException</a>, <a class="el" href="classlog4cxx_1_1helpers_1_1_thread_exception.html">ThreadException</a>, <a class="el" href="classlog4cxx_1_1helpers_1_1_transcoder_exception.html">TranscoderException</a>, and <a class="el" href="classlog4cxx_1_1helpers_1_1_unknown_host_exception.html">UnknownHostException</a>.
<p>
<a href="classlog4cxx_1_1helpers_1_1_exception-members.html">List of all members.</a><hr><a name="_details"></a><h2>Detailed Description</h2>
The class <a class="el" href="classlog4cxx_1_1helpers_1_1_exception.html">Exception</a> and its subclasses indicate conditions that a reasonable application might want to catch. 
<p>
<table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlog4cxx_1_1helpers_1_1_exception.html#e5e04df303590dff4f57f2da4e60d6d7">Exception</a> (const char *msg)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlog4cxx_1_1helpers_1_1_exception.html#8dcca19ab4ce108db16e644fc687eeed">Exception</a> (const <a class="el" href="namespacelog4cxx.html#d7ec98d27bca7666e23f27dd1fb181c8">LogString</a> &amp;msg)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlog4cxx_1_1helpers_1_1_exception.html#8dafee80c8d90301c465737c0c869a74">Exception</a> (const <a class="el" href="classlog4cxx_1_1helpers_1_1_exception.html">Exception</a> &amp;src)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classlog4cxx_1_1helpers_1_1_exception.html">Exception</a> &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlog4cxx_1_1helpers_1_1_exception.html#4c17b6fd950ef49bbf6adb7add4fe450">operator=</a> (const <a class="el" href="classlog4cxx_1_1helpers_1_1_exception.html">Exception</a> &amp;src)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">const char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlog4cxx_1_1helpers_1_1_exception.html#586eee248fedb7de1b50219e14b99c7b">what</a> () const   throw ()</td></tr>

</table>
<hr><h2>Constructor &amp; Destructor Documentation</h2>
<a class="anchor" name="e5e04df303590dff4f57f2da4e60d6d7"></a><!-- doxytag: member="log4cxx::helpers::Exception::Exception" ref="e5e04df303590dff4f57f2da4e60d6d7" args="(const char *msg)" --><p>
<table class="mdTable" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"><a class="el" href="classlog4cxx_1_1helpers_1_1_exception.html">Exception</a>           </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">const char *&nbsp;</td>
          <td class="mdname1" valign="top" nowrap> <em>msg</em>          </td>
          <td class="md" valign="top">&nbsp;)&nbsp;</td>
          <td class="md" nowrap></td>
        </tr>
      </table>
    </td>
  </tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
    </td>
  </tr>
</table>
<a class="anchor" name="8dcca19ab4ce108db16e644fc687eeed"></a><!-- doxytag: member="log4cxx::helpers::Exception::Exception" ref="8dcca19ab4ce108db16e644fc687eeed" args="(const LogString &amp;msg)" --><p>
<table class="mdTable" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"><a class="el" href="classlog4cxx_1_1helpers_1_1_exception.html">Exception</a>           </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">const <a class="el" href="namespacelog4cxx.html#d7ec98d27bca7666e23f27dd1fb181c8">LogString</a> &amp;&nbsp;</td>
          <td class="mdname1" valign="top" nowrap> <em>msg</em>          </td>
          <td class="md" valign="top">&nbsp;)&nbsp;</td>
          <td class="md" nowrap></td>
        </tr>
      </table>
    </td>
  </tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
    </td>
  </tr>
</table>
<a class="anchor" name="8dafee80c8d90301c465737c0c869a74"></a><!-- doxytag: member="log4cxx::helpers::Exception::Exception" ref="8dafee80c8d90301c465737c0c869a74" args="(const Exception &amp;src)" --><p>
<table class="mdTable" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"><a class="el" href="classlog4cxx_1_1helpers_1_1_exception.html">Exception</a>           </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">const <a class="el" href="classlog4cxx_1_1helpers_1_1_exception.html">Exception</a> &amp;&nbsp;</td>
          <td class="mdname1" valign="top" nowrap> <em>src</em>          </td>
          <td class="md" valign="top">&nbsp;)&nbsp;</td>
          <td class="md" nowrap></td>
        </tr>
      </table>
    </td>
  </tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
    </td>
  </tr>
</table>
<hr><h2>Member Function Documentation</h2>
<a class="anchor" name="4c17b6fd950ef49bbf6adb7add4fe450"></a><!-- doxytag: member="log4cxx::helpers::Exception::operator=" ref="4c17b6fd950ef49bbf6adb7add4fe450" args="(const Exception &amp;src)" --><p>
<table class="mdTable" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"><a class="el" href="classlog4cxx_1_1helpers_1_1_exception.html">Exception</a>&amp; operator=           </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">const <a class="el" href="classlog4cxx_1_1helpers_1_1_exception.html">Exception</a> &amp;&nbsp;</td>
          <td class="mdname1" valign="top" nowrap> <em>src</em>          </td>
          <td class="md" valign="top">&nbsp;)&nbsp;</td>
          <td class="md" nowrap></td>
        </tr>
      </table>
    </td>
  </tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
    </td>
  </tr>
</table>
<a class="anchor" name="586eee248fedb7de1b50219e14b99c7b"></a><!-- doxytag: member="log4cxx::helpers::Exception::what" ref="586eee248fedb7de1b50219e14b99c7b" args="() const " --><p>
<table class="mdTable" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top">const char* what           </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="mdname1" valign="top" nowrap>          </td>
          <td class="md" valign="top">&nbsp;)&nbsp;</td>
          <td class="md" nowrap> const  throw ()</td>
        </tr>
      </table>
    </td>
  </tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
    </td>
  </tr>
</table>
<hr>The documentation for this class was generated from the following file:<ul>
<li><a class="el" href="exception_8h.html">exception.h</a></ul>
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements.  See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License.  You may obtain a copy of the License at

     http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
    </BODY>
</HTML>
