<refentry id="camel-camel-imapp-exception">
<refmeta>
<refentrytitle role="top_of_page" id="camel-camel-imapp-exception.top_of_page">camel-imapp-exception</refentrytitle>
<manvolnum>3</manvolnum>
<refmiscinfo>CAMEL Library</refmiscinfo>
</refmeta>

<refnamediv>
<refname>camel-imapp-exception</refname>
<refpurpose></refpurpose>
<!--[<xref linkend="desc" endterm="desc.title"/>]-->
</refnamediv>

<refsynopsisdiv id="camel-camel-imapp-exception.synopsis" role="synopsis">
<title role="synopsis.title">Synopsis</title>

<synopsis>
struct              <link linkend="CamelExceptionEnv">CamelExceptionEnv</link>;
#define             <link linkend="CAMEL-TRY:CAPS">CAMEL_TRY</link>
#define             <link linkend="CAMEL-IGNORE:CAPS">CAMEL_IGNORE</link>
#define             <link linkend="CAMEL-CATCH:CAPS">CAMEL_CATCH</link>                         (x)
#define             <link linkend="CAMEL-DONE:CAPS">CAMEL_DONE</link>
#define             <link linkend="CAMEL-DROP:CAPS">CAMEL_DROP</link>                          ()
<link linkend="void">void</link>                <link linkend="camel-exception-setup">camel_exception_setup</link>               (void);
<link linkend="void">void</link>                <link linkend="camel-exception-try">camel_exception_try</link>                 (<link linkend="struct--CamelExceptionEnv">struct _CamelExceptionEnv</link> *env);
<link linkend="void">void</link>                <link linkend="camel-exception-done">camel_exception_done</link>                (<link linkend="struct--CamelExceptionEnv">struct _CamelExceptionEnv</link> *env);
<link linkend="void">void</link>                <link linkend="camel-exception-drop">camel_exception_drop</link>                (<link linkend="struct--CamelExceptionEnv">struct _CamelExceptionEnv</link> *env);
<link linkend="void">void</link>                <link linkend="camel-exception-throw-ex">camel_exception_throw_ex</link>            (<link linkend="CamelException">CamelException</link> *ex);
<link linkend="void">void</link>                <link linkend="camel-exception-throw">camel_exception_throw</link>               (<link linkend="int">int</link> id,
                                                         <link linkend="char">char</link> *fmt,
                                                         ...);
</synopsis>
</refsynopsisdiv>









<refsect1 id="camel-camel-imapp-exception.description" role="desc">
<title role="desc.title">Description</title>
<para>

</para>
</refsect1>

<refsect1 id="camel-camel-imapp-exception.details" role="details">
<title role="details.title">Details</title>
<refsect2 id="CamelExceptionEnv" role="struct">
<title>struct CamelExceptionEnv</title>
<indexterm zone="CamelExceptionEnv"><primary>CamelExceptionEnv</primary></indexterm><programlisting>struct CamelExceptionEnv {
	struct _CamelExceptionEnv *parent;
	CamelException *ex;
	jmp_buf env;
};
</programlisting>
<para>

</para></refsect2>
<refsect2 id="CAMEL-TRY:CAPS" role="macro">
<title>CAMEL_TRY</title>
<indexterm zone="CAMEL-TRY:CAPS"><primary>CAMEL_TRY</primary></indexterm><programlisting>#define CAMEL_TRY { struct _CamelExceptionEnv __env; camel_exception_try(&amp;__env); if (setjmp(__env.env) == 0)
</programlisting>
<para>

</para></refsect2>
<refsect2 id="CAMEL-IGNORE:CAPS" role="macro">
<title>CAMEL_IGNORE</title>
<indexterm zone="CAMEL-IGNORE:CAPS"><primary>CAMEL_IGNORE</primary></indexterm><programlisting>#define CAMEL_IGNORE camel_exception_done(&amp;__env); }
</programlisting>
<para>

</para></refsect2>
<refsect2 id="CAMEL-CATCH:CAPS" role="macro">
<title>CAMEL_CATCH()</title>
<indexterm zone="CAMEL-CATCH:CAPS"><primary>CAMEL_CATCH</primary></indexterm><programlisting>#define CAMEL_CATCH(x) { CamelException *x; x=__env.ex; if (x != NULL)
</programlisting>
<para>

</para><variablelist role="params">
<varlistentry><term><parameter>x</parameter>&nbsp;:</term>
<listitem><simpara>


</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2 id="CAMEL-DONE:CAPS" role="macro">
<title>CAMEL_DONE</title>
<indexterm zone="CAMEL-DONE:CAPS"><primary>CAMEL_DONE</primary></indexterm><programlisting>#define CAMEL_DONE } camel_exception_done(&amp;__env); }
</programlisting>
<para>

</para></refsect2>
<refsect2 id="CAMEL-DROP:CAPS" role="macro">
<title>CAMEL_DROP()</title>
<indexterm zone="CAMEL-DROP:CAPS"><primary>CAMEL_DROP</primary></indexterm><programlisting>#define CAMEL_DROP() camel_exception_drop(&amp;__env)
</programlisting>
<para>

</para></refsect2>
<refsect2 id="camel-exception-setup" role="function">
<title>camel_exception_setup ()</title>
<indexterm zone="camel-exception-setup"><primary>camel_exception_setup</primary></indexterm><programlisting><link linkend="void">void</link>                camel_exception_setup               (void);</programlisting>
<para>

</para></refsect2>
<refsect2 id="camel-exception-try" role="function">
<title>camel_exception_try ()</title>
<indexterm zone="camel-exception-try"><primary>camel_exception_try</primary></indexterm><programlisting><link linkend="void">void</link>                camel_exception_try                 (<link linkend="struct--CamelExceptionEnv">struct _CamelExceptionEnv</link> *env);</programlisting>
<para>

</para><variablelist role="params">
<varlistentry><term><parameter>env</parameter>&nbsp;:</term>
<listitem><simpara>


</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2 id="camel-exception-done" role="function">
<title>camel_exception_done ()</title>
<indexterm zone="camel-exception-done"><primary>camel_exception_done</primary></indexterm><programlisting><link linkend="void">void</link>                camel_exception_done                (<link linkend="struct--CamelExceptionEnv">struct _CamelExceptionEnv</link> *env);</programlisting>
<para>

</para><variablelist role="params">
<varlistentry><term><parameter>env</parameter>&nbsp;:</term>
<listitem><simpara>


</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2 id="camel-exception-drop" role="function">
<title>camel_exception_drop ()</title>
<indexterm zone="camel-exception-drop"><primary>camel_exception_drop</primary></indexterm><programlisting><link linkend="void">void</link>                camel_exception_drop                (<link linkend="struct--CamelExceptionEnv">struct _CamelExceptionEnv</link> *env);</programlisting>
<para>

</para><variablelist role="params">
<varlistentry><term><parameter>env</parameter>&nbsp;:</term>
<listitem><simpara>


</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2 id="camel-exception-throw-ex" role="function">
<title>camel_exception_throw_ex ()</title>
<indexterm zone="camel-exception-throw-ex"><primary>camel_exception_throw_ex</primary></indexterm><programlisting><link linkend="void">void</link>                camel_exception_throw_ex            (<link linkend="CamelException">CamelException</link> *ex);</programlisting>
<para>

</para><variablelist role="params">
<varlistentry><term><parameter>ex</parameter>&nbsp;:</term>
<listitem><simpara>


</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2 id="camel-exception-throw" role="function">
<title>camel_exception_throw ()</title>
<indexterm zone="camel-exception-throw"><primary>camel_exception_throw</primary></indexterm><programlisting><link linkend="void">void</link>                camel_exception_throw               (<link linkend="int">int</link> id,
                                                         <link linkend="char">char</link> *fmt,
                                                         ...);</programlisting>
<para>

</para><variablelist role="params">
<varlistentry><term><parameter>id</parameter>&nbsp;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>fmt</parameter>&nbsp;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>...</parameter>&nbsp;:</term>
<listitem><simpara>


</simpara></listitem></varlistentry>
</variablelist></refsect2>

</refsect1>




</refentry>
