<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> <title>gtkmm-utils: exception.h File Reference</title> <link href="tabs.css" rel="stylesheet" type="text/css"/> <link href="navtree.css" rel="stylesheet" type="text/css"/> <script type="text/javascript" src="jquery.js"></script> <script type="text/javascript" src="navtree.js"></script> <script type="text/javascript" src="resize.js"></script> <script type="text/javascript"> $(document).ready(initResizable); </script> <link href="doxygen.css" rel="stylesheet" type="text/css"/> </head> <body> <!-- Generated by Doxygen 1.7.3 --> <div id="top"> <div id="titlearea"> <table cellspacing="0" cellpadding="0"> <tbody> <tr style="height: 56px;"> <td style="padding-left: 0.5em;"> <div id="projectname">gtkmm-utils <span id="projectnumber">0.4.1</span></div> </td> </tr> </tbody> </table> </div> </div> <div id="side-nav" class="ui-resizable side-nav-resizable"> <div id="nav-tree"> <div id="nav-tree-contents"> </div> </div> <div id="splitbar" style="-moz-user-select:none;" class="ui-resizable-handle"> </div> </div> <script type="text/javascript"> initNavTree('exception_8h.html',''); </script> <div id="doc-content"> <div class="header"> <div class="summary"> <a href="#nested-classes">Classes</a> | <a href="#namespaces">Namespaces</a> | <a href="#define-members">Defines</a> </div> <div class="headertitle"> <h1>exception.h File Reference</h1> </div> </div> <div class="contents"> <table class="memberdecls"> <tr><td colspan="2"><h2><a name="nested-classes"></a> Classes</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="classGlib_1_1Util_1_1Exception.html">Glib::Util::Exception</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Base exception class. <a href="classGlib_1_1Util_1_1Exception.html#_details">More...</a><br/></td></tr> <tr><td colspan="2"><h2><a name="namespaces"></a> Namespaces</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top">namespace  </td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceGlib.html">Glib</a></td></tr> <tr><td class="memItemLeft" align="right" valign="top">namespace  </td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceGlib_1_1Util.html">Glib::Util</a></td></tr> <tr><td colspan="2"><h2><a name="define-members"></a> Defines</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="exception_8h.html#a6f180226584681c93de4685a7c46fa10">GLIBMM_CATCH_AND_RETURN_NOX</a>(a_value)</td></tr> <tr><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="exception_8h.html#aade24d884183ec4726c75204cc75e3fb">GLIBMM_CATCH_NOX</a></td></tr> <tr><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="exception_8h.html#af4f1c5db17ae323b59ccaefa874aeecd">GLIBMM_TRY</a>   try {</td></tr> <tr><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="exception_8h.html#a13481c66346f90f8bf50ecfc840c57dd">RETHROW_EXCEPTION</a>(exception)   LOG_EXCEPTION ("Caught and rethrowing exception: " << exception.what() << "\n")</td></tr> <tr><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="exception_8h.html#ab15eb106ac075e1e5b2f1433bf23d808">RETURN_IF_FAIL</a>(expression)</td></tr> <tr><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="exception_8h.html#a906d50dc624ea1f2ca50ce36f3393b85">RETURN_VAL_IF_FAIL</a>(expression, value)</td></tr> <tr><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="exception_8h.html#a1feff9e791962dc7f7e3c48b2a40490b">THROW</a>(a_reason)</td></tr> <tr><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="exception_8h.html#ac43e8c157952ae1b1106e5171ea8acd0">THROW_EMPTY</a></td></tr> <tr><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="exception_8h.html#ad91c5d8fdbbb7052be7f2f79d6ab7d15">THROW_EXCEPTION</a>(type, message)</td></tr> <tr><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="exception_8h.html#aaa20c31e1faf322f7a29b776a6fc0220">THROW_IF_FAIL</a>(a_cond)</td></tr> <tr><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="exception_8h.html#a39b7e05b7751c35935d711e9cb079867">THROW_IF_FAIL2</a>(a_cond, a_reason)</td></tr> <tr><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="exception_8h.html#a38ba4e13b4b7574302a9af191e56d65b">THROW_IF_FAIL3</a>(a_cond, type, a_reason)</td></tr> <tr><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="exception_8h.html#ab17e50f1487f31d07e1d0b70421e38a8">TRACE_EXCEPTION</a>(exception)   LOG_EXCEPTION ("Caught exception: " << exception.what () << "\n")</td></tr> </table> <hr/><h2>Define Documentation</h2> <a class="anchor" id="a6f180226584681c93de4685a7c46fa10"></a><!-- doxytag: member="exception.h::GLIBMM_CATCH_AND_RETURN_NOX" ref="a6f180226584681c93de4685a7c46fa10" args="(a_value)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define GLIBMM_CATCH_AND_RETURN_NOX</td> <td>(</td> <td class="paramtype"> </td> <td class="paramname">a_value</td><td>)</td> <td></td> </tr> </table> </div> <div class="memdoc"> <b>Value:</b><div class="fragment"><pre class="fragment">} <span class="keywordflow">catch</span> (Glib::Exception &e) { \ <a class="code" href="log-stream-utils_8h.html#a27d98b18ba06759c6ef5c71b1e1a9904">LOG_ERROR</a> (e.what ()) ; \ <span class="keywordflow">return</span> a_value ; \ } <span class="keywordflow">catch</span> (std::exception &e) { \ <a class="code" href="log-stream-utils_8h.html#a27d98b18ba06759c6ef5c71b1e1a9904">LOG_ERROR</a> (e.what ()) ; \ <span class="keywordflow">return</span> a_value ; \ } <span class="keywordflow">catch</span> (...) { \ <a class="code" href="log-stream-utils_8h.html#a27d98b18ba06759c6ef5c71b1e1a9904">LOG_ERROR</a> (<span class="stringliteral">"An unknown error occured"</span>) ; \ <span class="keywordflow">return</span> a_value ; \ } </pre></div> </div> </div> <a class="anchor" id="aade24d884183ec4726c75204cc75e3fb"></a><!-- doxytag: member="exception.h::GLIBMM_CATCH_NOX" ref="aade24d884183ec4726c75204cc75e3fb" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define GLIBMM_CATCH_NOX</td> </tr> </table> </div> <div class="memdoc"> <b>Value:</b><div class="fragment"><pre class="fragment">} <span class="keywordflow">catch</span> (Glib::Exception &e) { \ <a class="code" href="log-stream-utils_8h.html#a27d98b18ba06759c6ef5c71b1e1a9904">LOG_ERROR</a> (e.what ()) ; \ } <span class="keywordflow">catch</span> (std::exception &e) { \ <a class="code" href="log-stream-utils_8h.html#a27d98b18ba06759c6ef5c71b1e1a9904">LOG_ERROR</a> (e.what ()) ; \ } <span class="keywordflow">catch</span> (...) { \ <a class="code" href="log-stream-utils_8h.html#a27d98b18ba06759c6ef5c71b1e1a9904">LOG_ERROR</a> (<span class="stringliteral">"An unknown error occured"</span>) ; \ } </pre></div> </div> </div> <a class="anchor" id="af4f1c5db17ae323b59ccaefa874aeecd"></a><!-- doxytag: member="exception.h::GLIBMM_TRY" ref="af4f1c5db17ae323b59ccaefa874aeecd" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define GLIBMM_TRY   try {</td> </tr> </table> </div> <div class="memdoc"> </div> </div> <a class="anchor" id="a13481c66346f90f8bf50ecfc840c57dd"></a><!-- doxytag: member="exception.h::RETHROW_EXCEPTION" ref="a13481c66346f90f8bf50ecfc840c57dd" args="(exception)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define RETHROW_EXCEPTION</td> <td>(</td> <td class="paramtype"> </td> <td class="paramname">exception</td><td>)</td> <td>   LOG_EXCEPTION ("Caught and rethrowing exception: " << exception.what() << "\n")</td> </tr> </table> </div> <div class="memdoc"> </div> </div> <a class="anchor" id="ab15eb106ac075e1e5b2f1433bf23d808"></a><!-- doxytag: member="exception.h::RETURN_IF_FAIL" ref="ab15eb106ac075e1e5b2f1433bf23d808" args="(expression)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define RETURN_IF_FAIL</td> <td>(</td> <td class="paramtype"> </td> <td class="paramname">expression</td><td>)</td> <td></td> </tr> </table> </div> <div class="memdoc"> <b>Value:</b><div class="fragment"><pre class="fragment"><span class="keywordflow">if</span> (!(expression)) { \ <a class="code" href="log-stream-utils_8h.html#a27d98b18ba06759c6ef5c71b1e1a9904">LOG_ERROR</a> (<span class="stringliteral">"Assertion "</span> << #expression << <span class="stringliteral">" failed. Returning.\n"</span>) ; \ return ; \ } </pre></div> </div> </div> <a class="anchor" id="a906d50dc624ea1f2ca50ce36f3393b85"></a><!-- doxytag: member="exception.h::RETURN_VAL_IF_FAIL" ref="a906d50dc624ea1f2ca50ce36f3393b85" args="(expression, value)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define RETURN_VAL_IF_FAIL</td> <td>(</td> <td class="paramtype"> </td> <td class="paramname">expression, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"> </td> <td class="paramname">value </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div> <div class="memdoc"> <b>Value:</b><div class="fragment"><pre class="fragment"><span class="keywordflow">if</span> (!(expression)) { \ <a class="code" href="log-stream-utils_8h.html#a27d98b18ba06759c6ef5c71b1e1a9904">LOG_ERROR</a> (<span class="stringliteral">"Assertion "</span> << #expression << <span class="stringliteral">" failed. Returning "</span> << #value << <span class="stringliteral">"\n"</span>) ; \ <span class="keywordflow">return</span> value ; \ } </pre></div> </div> </div> <a class="anchor" id="a1feff9e791962dc7f7e3c48b2a40490b"></a><!-- doxytag: member="exception.h::THROW" ref="a1feff9e791962dc7f7e3c48b2a40490b" args="(a_reason)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define THROW</td> <td>(</td> <td class="paramtype"> </td> <td class="paramname">a_reason</td><td>)</td> <td></td> </tr> </table> </div> <div class="memdoc"> <b>Value:</b><div class="fragment"><pre class="fragment"><a class="code" href="log-stream-utils_8h.html#ae0981f4421dba330bb8d14bbe15e53c6">LOG_EXCEPTION</a> (<span class="stringliteral">"Raised exception: "</span><< (Glib::ustring (a_reason)) << <span class="stringliteral">"\n"</span>); \ <span class="keywordflow">throw</span> <a class="code" href="classGlib_1_1Util_1_1Exception.html" title="Base exception class.">Glib::Util::Exception</a> (Glib::ustring (a_reason)) ; </pre></div> </div> </div> <a class="anchor" id="ac43e8c157952ae1b1106e5171ea8acd0"></a><!-- doxytag: member="exception.h::THROW_EMPTY" ref="ac43e8c157952ae1b1106e5171ea8acd0" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define THROW_EMPTY</td> </tr> </table> </div> <div class="memdoc"> <b>Value:</b><div class="fragment"><pre class="fragment"><a class="code" href="log-stream-utils_8h.html#ae0981f4421dba330bb8d14bbe15e53c6">LOG_EXCEPTION</a> (<span class="stringliteral">"Raised empty exception"</span> << <a class="code" href="namespaceGlib_1_1Util.html#a47a554b73e0d571d85424d0e60a95e16" title="log a &#39;\n&#39; and flushes the stream Use it like: Glib::Util::LogStream out ; out &lt;&lt; &quot...">endl</a>) ; \ throw ; </pre></div> </div> </div> <a class="anchor" id="ad91c5d8fdbbb7052be7f2f79d6ab7d15"></a><!-- doxytag: member="exception.h::THROW_EXCEPTION" ref="ad91c5d8fdbbb7052be7f2f79d6ab7d15" args="(type, message)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define THROW_EXCEPTION</td> <td>(</td> <td class="paramtype"> </td> <td class="paramname">type, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"> </td> <td class="paramname">message </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div> <div class="memdoc"> <b>Value:</b><div class="fragment"><pre class="fragment"><a class="code" href="log-stream-utils_8h.html#ae0981f4421dba330bb8d14bbe15e53c6">LOG_EXCEPTION</a> (<span class="stringliteral">"Raised "</span> << #type << <span class="stringliteral">": "</span><< message<< <span class="stringliteral">"\n"</span>) ; \ <span class="keywordflow">throw</span> type (message) ; </pre></div> </div> </div> <a class="anchor" id="aaa20c31e1faf322f7a29b776a6fc0220"></a><!-- doxytag: member="exception.h::THROW_IF_FAIL" ref="aaa20c31e1faf322f7a29b776a6fc0220" args="(a_cond)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define THROW_IF_FAIL</td> <td>(</td> <td class="paramtype"> </td> <td class="paramname">a_cond</td><td>)</td> <td></td> </tr> </table> </div> <div class="memdoc"> <b>Value:</b><div class="fragment"><pre class="fragment"><span class="keywordflow">if</span> (!(a_cond)) { \ <a class="code" href="log-stream-utils_8h.html#ae0981f4421dba330bb8d14bbe15e53c6">LOG_EXCEPTION</a> (<span class="stringliteral">"Condition ("</span> << #a_cond << <span class="stringliteral">") failed; raising exception\n"</span> ) ;\ <span class="keywordflow">throw</span> <a class="code" href="classGlib_1_1Util_1_1Exception.html" title="Base exception class.">Glib::Util::Exception</a> \ (Glib::ustring (<span class="stringliteral">"Assertion failed: "</span>) + #a_cond) ;\ } </pre></div> </div> </div> <a class="anchor" id="a39b7e05b7751c35935d711e9cb079867"></a><!-- doxytag: member="exception.h::THROW_IF_FAIL2" ref="a39b7e05b7751c35935d711e9cb079867" args="(a_cond, a_reason)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define THROW_IF_FAIL2</td> <td>(</td> <td class="paramtype"> </td> <td class="paramname">a_cond, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"> </td> <td class="paramname">a_reason </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div> <div class="memdoc"> <b>Value:</b><div class="fragment"><pre class="fragment"><span class="keywordflow">if</span> (!(a_cond)) { \ <a class="code" href="log-stream-utils_8h.html#ae0981f4421dba330bb8d14bbe15e53c6">LOG_EXCEPTION</a> (<span class="stringliteral">"Condition ("</span> << #a_cond << <span class="stringliteral">") failed; raising exception "</span> << a_reason <<<span class="stringliteral">"\n"</span>);\ <span class="keywordflow">throw</span> <a class="code" href="classGlib_1_1Util_1_1Exception.html" title="Base exception class.">Glib::Util::Exception</a> (a_reason) ;\ } </pre></div> </div> </div> <a class="anchor" id="a38ba4e13b4b7574302a9af191e56d65b"></a><!-- doxytag: member="exception.h::THROW_IF_FAIL3" ref="a38ba4e13b4b7574302a9af191e56d65b" args="(a_cond, type, a_reason)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define THROW_IF_FAIL3</td> <td>(</td> <td class="paramtype"> </td> <td class="paramname">a_cond, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"> </td> <td class="paramname">type, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"> </td> <td class="paramname">a_reason </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div> <div class="memdoc"> <b>Value:</b><div class="fragment"><pre class="fragment"><span class="keywordflow">if</span> (!(a_cond)) { \ <a class="code" href="log-stream-utils_8h.html#ae0981f4421dba330bb8d14bbe15e53c6">LOG_EXCEPTION</a> (<span class="stringliteral">"Condition ("</span> << #a_cond << <span class="stringliteral">") failed; raising exception "</span> << #type << \ << <span class="stringliteral">": "</span> << a_reason << <span class="stringliteral">"\n"</span> ) ; <span class="keywordflow">throw</span> type (a_reason) ;\ } </pre></div> </div> </div> <a class="anchor" id="ab17e50f1487f31d07e1d0b70421e38a8"></a><!-- doxytag: member="exception.h::TRACE_EXCEPTION" ref="ab17e50f1487f31d07e1d0b70421e38a8" args="(exception)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define TRACE_EXCEPTION</td> <td>(</td> <td class="paramtype"> </td> <td class="paramname">exception</td><td>)</td> <td>   LOG_EXCEPTION ("Caught exception: " << exception.what () << "\n")</td> </tr> </table> </div> <div class="memdoc"> </div> </div> </div> </div> <div id="nav-path" class="navpath"> <ul> <li class="navelem"><a class="el" href="exception_8h.html">exception.h</a> </li> <li class="footer">Generated on Wed Feb 9 2011 for gtkmm-utils by  <a href="http://www.doxygen.org/index.html"> <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.3 </li> </ul> </div> </body> </html>