<!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"/> <meta http-equiv="X-UA-Compatible" content="IE=9"/> <meta name="generator" content="Doxygen 1.8.13"/> <meta name="viewport" content="width=device-width, initial-scale=1"/> <title>libstdc++: Exceptions</title> <link href="tabs.css" rel="stylesheet" type="text/css"/> <script type="text/javascript" src="jquery.js"></script> <script type="text/javascript" src="dynsections.js"></script> <link href="navtree.css" rel="stylesheet" type="text/css"/> <script type="text/javascript" src="resize.js"></script> <script type="text/javascript" src="navtreedata.js"></script> <script type="text/javascript" src="navtree.js"></script> <script type="text/javascript"> $(document).ready(initResizable); </script> <link href="doxygen.css" rel="stylesheet" type="text/css" /> </head> <body> <div id="top"><!-- do not remove this div, it is closed by doxygen! --> <div id="titlearea"> <table cellspacing="0" cellpadding="0"> <tbody> <tr style="height: 56px;"> <td id="projectalign" style="padding-left: 0.5em;"> <div id="projectname">libstdc++ </div> </td> </tr> </tbody> </table> </div> <!-- end header part --> <!-- Generated by Doxygen 1.8.13 --> </div><!-- top --> <div id="side-nav" class="ui-resizable side-nav-resizable"> <div id="nav-tree"> <div id="nav-tree-contents"> <div id="nav-sync" class="sync"></div> </div> </div> <div id="splitbar" style="-moz-user-select:none;" class="ui-resizable-handle"> </div> </div> <script type="text/javascript"> $(document).ready(function(){initNavTree('a01418.html','');}); </script> <div id="doc-content"> <div class="header"> <div class="summary"> <a href="#nested-classes">Classes</a> | <a href="#typedef-members">Typedefs</a> | <a href="#func-members">Functions</a> </div> <div class="headertitle"> <div class="title">Exceptions<div class="ingroups"><a class="el" href="a01416.html">Diagnostics</a></div></div> </div> </div><!--header--> <div class="contents"> <div class="dynheader"> Collaboration diagram for Exceptions:</div> <div class="dyncontent"> <center><table><tr><td><div class="center"><iframe scrolling="no" frameborder="0" src="a01418.svg" width="535" height="227"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe> </div> </td></tr></table></center> </div> <table class="memberdecls"> <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a> Classes</h2></td></tr> <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="a04773.html">__cxxabiv1::__forced_unwind</a></td></tr> <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="a09337.html">__gnu_cxx::forced_error</a></td></tr> <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="a01589.html">__gnu_cxx::recursive_init_error</a></td></tr> <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="a04861.html">std::__exception_ptr::exception_ptr</a></td></tr> <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="a01605.html">std::bad_alloc</a></td></tr> <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="a01621.html">std::bad_cast</a></td></tr> <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="a01597.html">std::bad_exception</a></td></tr> <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="a02569.html">std::bad_function_call</a></td></tr> <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="a01625.html">std::bad_typeid</a></td></tr> <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="a06121.html">std::bad_weak_ptr</a></td></tr> <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="a03209.html">std::domain_error</a></td></tr> <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="a01593.html">std::exception</a></td></tr> <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="a08697.html">std::experimental::fundamentals_v1::bad_any_cast</a></td></tr> <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="a08765.html">std::experimental::fundamentals_v1::bad_optional_access</a></td></tr> <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="a02653.html">std::future_error</a></td></tr> <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="a03213.html">std::invalid_argument</a></td></tr> <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="a05213.html">std::ios_base::failure</a></td></tr> <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="a03217.html">std::length_error</a></td></tr> <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="a03205.html">std::logic_error</a></td></tr> <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="a05405.html">std::nested_exception</a></td></tr> <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="a03221.html">std::out_of_range</a></td></tr> <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="a03233.html">std::overflow_error</a></td></tr> <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="a03229.html">std::range_error</a></td></tr> <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="a06061.html">std::regex_error</a></td></tr> <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="a03225.html">std::runtime_error</a></td></tr> <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="a03269.html">std::system_error</a></td></tr> <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="a03237.html">std::underflow_error</a></td></tr> <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> </table><table class="memberdecls"> <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a> Typedefs</h2></td></tr> <tr class="memitem:ga2f2f9edd9cd5d903b65cce6ccb977fdd"><td class="memItemLeft" align="right" valign="top">typedef void(* </td><td class="memItemRight" valign="bottom"><a class="el" href="a01418.html#ga2f2f9edd9cd5d903b65cce6ccb977fdd">std::terminate_handler</a>) ()</td></tr> <tr class="separator:ga2f2f9edd9cd5d903b65cce6ccb977fdd"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:gac2b8e8de17f84d0261369b2162d73ff0"><td class="memItemLeft" align="right" valign="top">typedef void(* </td><td class="memItemRight" valign="bottom"><a class="el" href="a01418.html#gac2b8e8de17f84d0261369b2162d73ff0">std::unexpected_handler</a>) ()</td></tr> <tr class="separator:gac2b8e8de17f84d0261369b2162d73ff0"><td class="memSeparator" colspan="2"> </td></tr> </table><table class="memberdecls"> <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a> Functions</h2></td></tr> <tr class="memitem:gaf51888cedbc669a114cd79e39e0cd9be"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="a01418.html#gaf51888cedbc669a114cd79e39e0cd9be">__gnu_cxx::__verbose_terminate_handler</a> ()</td></tr> <tr class="separator:gaf51888cedbc669a114cd79e39e0cd9be"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga155dc3a7d5834ccc269117511eab203d"><td class="memTemplParams" colspan="2">template<typename _Ex > </td></tr> <tr class="memitem:ga155dc3a7d5834ccc269117511eab203d"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a04861.html">exception_ptr</a> </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a01418.html#ga155dc3a7d5834ccc269117511eab203d">std::copy_exception</a> (_Ex __ex) noexcept 1</td></tr> <tr class="separator:ga155dc3a7d5834ccc269117511eab203d"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga02cdcc517fefe661313437aa9356a28f"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a04861.html">exception_ptr</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="a01418.html#ga02cdcc517fefe661313437aa9356a28f">std::current_exception</a> () noexcept</td></tr> <tr class="separator:ga02cdcc517fefe661313437aa9356a28f"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga5427b4061db7ec519fbd7ded55c38226"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a01418.html#ga2f2f9edd9cd5d903b65cce6ccb977fdd">terminate_handler</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="a01418.html#ga5427b4061db7ec519fbd7ded55c38226">std::get_terminate</a> () noexcept</td></tr> <tr class="separator:ga5427b4061db7ec519fbd7ded55c38226"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga08a755f5c21484846b4b0f3964580739"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a01418.html#gac2b8e8de17f84d0261369b2162d73ff0">unexpected_handler</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="a01418.html#ga08a755f5c21484846b4b0f3964580739">std::get_unexpected</a> () noexcept</td></tr> <tr class="separator:ga08a755f5c21484846b4b0f3964580739"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga200c1d3152b2fd43b206da6c031b9730"><td class="memTemplParams" colspan="2">template<typename _Ex > </td></tr> <tr class="memitem:ga200c1d3152b2fd43b206da6c031b9730"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a04861.html">exception_ptr</a> </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a01418.html#ga200c1d3152b2fd43b206da6c031b9730">std::make_exception_ptr</a> (_Ex __ex) noexcept</td></tr> <tr class="separator:ga200c1d3152b2fd43b206da6c031b9730"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga64d0b68338d7edbfd7d95f4177dbc442"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="a01418.html#ga64d0b68338d7edbfd7d95f4177dbc442">std::rethrow_exception</a> (<a class="el" href="a04861.html">exception_ptr</a>) __attribute__((__noreturn__))</td></tr> <tr class="separator:ga64d0b68338d7edbfd7d95f4177dbc442"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:gab61c4f8fae83699092207e16594f6b35"><td class="memTemplParams" colspan="2">template<typename _Ex > </td></tr> <tr class="memitem:gab61c4f8fae83699092207e16594f6b35"><td class="memTemplItemLeft" align="right" valign="top">void </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a01418.html#gab61c4f8fae83699092207e16594f6b35">std::rethrow_if_nested</a> (const _Ex &__ex)</td></tr> <tr class="separator:gab61c4f8fae83699092207e16594f6b35"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:gaa53bcb9876c7b393a9e9e26fc90d5811"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a01418.html#ga2f2f9edd9cd5d903b65cce6ccb977fdd">terminate_handler</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="a01418.html#gaa53bcb9876c7b393a9e9e26fc90d5811">std::set_terminate</a> (<a class="el" href="a01418.html#ga2f2f9edd9cd5d903b65cce6ccb977fdd">terminate_handler</a>) noexcept</td></tr> <tr class="separator:gaa53bcb9876c7b393a9e9e26fc90d5811"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga92329f10f9aba5eb5f26b11cf01d5166"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a01418.html#gac2b8e8de17f84d0261369b2162d73ff0">unexpected_handler</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="a01418.html#ga92329f10f9aba5eb5f26b11cf01d5166">std::set_unexpected</a> (<a class="el" href="a01418.html#gac2b8e8de17f84d0261369b2162d73ff0">unexpected_handler</a>) noexcept</td></tr> <tr class="separator:ga92329f10f9aba5eb5f26b11cf01d5166"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:gadd3befe08cc677fe78f3e6f6b0c6d29b"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="a01418.html#gadd3befe08cc677fe78f3e6f6b0c6d29b">std::terminate</a> () noexcept __attribute__((__noreturn__))</td></tr> <tr class="separator:gadd3befe08cc677fe78f3e6f6b0c6d29b"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:gae6e361189fc8333896bebb3523551209"><td class="memTemplParams" colspan="2">template<typename _Tp > </td></tr> <tr class="memitem:gae6e361189fc8333896bebb3523551209"><td class="memTemplItemLeft" align="right" valign="top">void </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a01418.html#gae6e361189fc8333896bebb3523551209">std::throw_with_nested</a> (_Tp &&__t)</td></tr> <tr class="separator:gae6e361189fc8333896bebb3523551209"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga876ca3bc46e47265109d55942ff2f6f7"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="a01418.html#ga876ca3bc46e47265109d55942ff2f6f7">std::uncaught_exception</a> () noexcept __attribute__((__pure__))</td></tr> <tr class="separator:ga876ca3bc46e47265109d55942ff2f6f7"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga742bf00b19772819acc97ae5e8f4bebe"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="a01418.html#ga742bf00b19772819acc97ae5e8f4bebe">std::unexpected</a> () __attribute__((__noreturn__))</td></tr> <tr class="separator:ga742bf00b19772819acc97ae5e8f4bebe"><td class="memSeparator" colspan="2"> </td></tr> </table> <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> <p>Classes and functions for reporting errors via exception classes. </p> <h2 class="groupheader">Typedef Documentation</h2> <a id="ga2f2f9edd9cd5d903b65cce6ccb977fdd"></a> <h2 class="memtitle"><span class="permalink"><a href="#ga2f2f9edd9cd5d903b65cce6ccb977fdd">◆ </a></span>terminate_handler</h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">typedef void(* std::terminate_handler) ()</td> </tr> </table> </div><div class="memdoc"> <p>If you write a replacement terminate handler, it must be of this type. </p> <p class="definition">Definition at line <a class="el" href="a00020_source.html#l00086">86</a> of file <a class="el" href="a00020_source.html">exception</a>.</p> </div> </div> <a id="gac2b8e8de17f84d0261369b2162d73ff0"></a> <h2 class="memtitle"><span class="permalink"><a href="#gac2b8e8de17f84d0261369b2162d73ff0">◆ </a></span>unexpected_handler</h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">typedef void(* std::unexpected_handler) ()</td> </tr> </table> </div><div class="memdoc"> <p>If you write a replacement unexpected handler, it must be of this type. </p> <p class="definition">Definition at line <a class="el" href="a00020_source.html#l00089">89</a> of file <a class="el" href="a00020_source.html">exception</a>.</p> </div> </div> <h2 class="groupheader">Function Documentation</h2> <a id="gaf51888cedbc669a114cd79e39e0cd9be"></a> <h2 class="memtitle"><span class="permalink"><a href="#gaf51888cedbc669a114cd79e39e0cd9be">◆ </a></span>__verbose_terminate_handler()</h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void __gnu_cxx::__verbose_terminate_handler </td> <td>(</td> <td class="paramname"></td><td>)</td> <td></td> </tr> </table> </div><div class="memdoc"> <p>A replacement for the standard terminate_handler which prints more information about the terminating exception (if any) on stderr. </p> <p>Call </p><div class="fragment"><div class="line"><a class="code" href="a01418.html#gaa53bcb9876c7b393a9e9e26fc90d5811">std::set_terminate</a>(<a class="code" href="a01418.html#gaf51888cedbc669a114cd79e39e0cd9be">__gnu_cxx::__verbose_terminate_handler</a>)</div></div><!-- fragment --><p> to use. For more info, see <a href="http://gcc.gnu.org/onlinedocs/libstdc++/manual/bk01pt02ch06s02.html">http://gcc.gnu.org/onlinedocs/libstdc++/manual/bk01pt02ch06s02.html</a></p> <p>In 3.4 and later, this is on by default. </p> </div> </div> <a id="ga155dc3a7d5834ccc269117511eab203d"></a> <h2 class="memtitle"><span class="permalink"><a href="#ga155dc3a7d5834ccc269117511eab203d">◆ </a></span>copy_exception()</h2> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<typename _Ex > </div> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname"><a class="el" href="a04861.html">exception_ptr</a> std::copy_exception </td> <td>(</td> <td class="paramtype">_Ex </td> <td class="paramname"><em>__ex</em></td><td>)</td> <td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">noexcept</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Obtain an exception_ptr pointing to a copy of the supplied object. This function is deprecated, use std::make_exception_ptr instead. </p> <p class="definition">Definition at line <a class="el" href="a00320_source.html#l00191">191</a> of file <a class="el" href="a00320_source.html">exception_ptr.h</a>.</p> <p class="reference">Referenced by <a class="el" href="a00320_source.html#l00165">std::make_exception_ptr()</a>.</p> </div> </div> <a id="ga02cdcc517fefe661313437aa9356a28f"></a> <h2 class="memtitle"><span class="permalink"><a href="#ga02cdcc517fefe661313437aa9356a28f">◆ </a></span>current_exception()</h2> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname"><a class="el" href="a04861.html">exception_ptr</a> std::current_exception </td> <td>(</td> <td class="paramname"></td><td>)</td> <td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">noexcept</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Obtain an exception_ptr to the currently handled exception. If there is none, or the currently handled exception is foreign, return the null value. </p> <p class="reference">Referenced by <a class="el" href="a00320_source.html#l00165">std::make_exception_ptr()</a>.</p> </div> </div> <a id="ga5427b4061db7ec519fbd7ded55c38226"></a> <h2 class="memtitle"><span class="permalink"><a href="#ga5427b4061db7ec519fbd7ded55c38226">◆ </a></span>get_terminate()</h2> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname"><a class="el" href="a01418.html#ga2f2f9edd9cd5d903b65cce6ccb977fdd">terminate_handler</a> std::get_terminate </td> <td>(</td> <td class="paramname"></td><td>)</td> <td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">noexcept</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Return the current terminate handler. </p> </div> </div> <a id="ga08a755f5c21484846b4b0f3964580739"></a> <h2 class="memtitle"><span class="permalink"><a href="#ga08a755f5c21484846b4b0f3964580739">◆ </a></span>get_unexpected()</h2> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname"><a class="el" href="a01418.html#gac2b8e8de17f84d0261369b2162d73ff0">unexpected_handler</a> std::get_unexpected </td> <td>(</td> <td class="paramname"></td><td>)</td> <td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">noexcept</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Return the current unexpected handler. </p> </div> </div> <a id="ga200c1d3152b2fd43b206da6c031b9730"></a> <h2 class="memtitle"><span class="permalink"><a href="#ga200c1d3152b2fd43b206da6c031b9730">◆ </a></span>make_exception_ptr()</h2> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<typename _Ex > </div> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname"><a class="el" href="a04861.html">exception_ptr</a> std::make_exception_ptr </td> <td>(</td> <td class="paramtype">_Ex </td> <td class="paramname"><em>__ex</em></td><td>)</td> <td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">noexcept</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Obtain an exception_ptr pointing to a copy of the supplied object. </p> <p class="definition">Definition at line <a class="el" href="a00320_source.html#l00165">165</a> of file <a class="el" href="a00320_source.html">exception_ptr.h</a>.</p> <p class="reference">References <a class="el" href="a00320_source.html#l00191">std::copy_exception()</a>, and <a class="el" href="a01418.html#ga02cdcc517fefe661313437aa9356a28f">std::current_exception()</a>.</p> </div> </div> <a id="ga64d0b68338d7edbfd7d95f4177dbc442"></a> <h2 class="memtitle"><span class="permalink"><a href="#ga64d0b68338d7edbfd7d95f4177dbc442">◆ </a></span>rethrow_exception()</h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void std::rethrow_exception </td> <td>(</td> <td class="paramtype"><a class="el" href="a04861.html">exception_ptr</a> </td> <td class="paramname"></td><td>)</td> <td></td> </tr> </table> </div><div class="memdoc"> <p>Throw the object pointed to by the exception_ptr. </p> </div> </div> <a id="gab61c4f8fae83699092207e16594f6b35"></a> <h2 class="memtitle"><span class="permalink"><a href="#gab61c4f8fae83699092207e16594f6b35">◆ </a></span>rethrow_if_nested()</h2> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<typename _Ex > </div> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">void std::rethrow_if_nested </td> <td>(</td> <td class="paramtype">const _Ex & </td> <td class="paramname"><em>__ex</em></td><td>)</td> <td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">inline</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>If <code>__ex</code> is derived from nested_exception, <code>__ex.rethrow_nested()</code>. </p> <p class="definition">Definition at line <a class="el" href="a00398_source.html#l00155">155</a> of file <a class="el" href="a00398_source.html">nested_exception.h</a>.</p> </div> </div> <a id="gaa53bcb9876c7b393a9e9e26fc90d5811"></a> <h2 class="memtitle"><span class="permalink"><a href="#gaa53bcb9876c7b393a9e9e26fc90d5811">◆ </a></span>set_terminate()</h2> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname"><a class="el" href="a01418.html#ga2f2f9edd9cd5d903b65cce6ccb977fdd">terminate_handler</a> std::set_terminate </td> <td>(</td> <td class="paramtype"><a class="el" href="a01418.html#ga2f2f9edd9cd5d903b65cce6ccb977fdd">terminate_handler</a> </td> <td class="paramname"></td><td>)</td> <td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">noexcept</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Takes a new handler function as an argument, returns the old function. </p> </div> </div> <a id="ga92329f10f9aba5eb5f26b11cf01d5166"></a> <h2 class="memtitle"><span class="permalink"><a href="#ga92329f10f9aba5eb5f26b11cf01d5166">◆ </a></span>set_unexpected()</h2> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname"><a class="el" href="a01418.html#gac2b8e8de17f84d0261369b2162d73ff0">unexpected_handler</a> std::set_unexpected </td> <td>(</td> <td class="paramtype"><a class="el" href="a01418.html#gac2b8e8de17f84d0261369b2162d73ff0">unexpected_handler</a> </td> <td class="paramname"></td><td>)</td> <td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">noexcept</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Takes a new handler function as an argument, returns the old function. </p> </div> </div> <a id="gadd3befe08cc677fe78f3e6f6b0c6d29b"></a> <h2 class="memtitle"><span class="permalink"><a href="#gadd3befe08cc677fe78f3e6f6b0c6d29b">◆ </a></span>terminate()</h2> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">void std::terminate </td> <td>(</td> <td class="paramname"></td><td>)</td> <td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">noexcept</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>The runtime will call this function if exception handling must be abandoned for any reason. It can also be called by the user. </p> </div> </div> <a id="gae6e361189fc8333896bebb3523551209"></a> <h2 class="memtitle"><span class="permalink"><a href="#gae6e361189fc8333896bebb3523551209">◆ </a></span>throw_with_nested()</h2> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<typename _Tp > </div> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">void std::throw_with_nested </td> <td>(</td> <td class="paramtype">_Tp && </td> <td class="paramname"><em>__t</em></td><td>)</td> <td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">inline</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>If <code>__t</code> is derived from nested_exception, throws <code>__t</code>. Else, throws an implementation-defined object derived from both. </p> <p class="definition">Definition at line <a class="el" href="a00398_source.html#l00131">131</a> of file <a class="el" href="a00398_source.html">nested_exception.h</a>.</p> </div> </div> <a id="ga876ca3bc46e47265109d55942ff2f6f7"></a> <h2 class="memtitle"><span class="permalink"><a href="#ga876ca3bc46e47265109d55942ff2f6f7">◆ </a></span>uncaught_exception()</h2> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">bool std::uncaught_exception </td> <td>(</td> <td class="paramname"></td><td>)</td> <td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">noexcept</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>[18.6.4]/1: 'Returns true after completing evaluation of a throw-expression until either completing initialization of the exception-declaration in the matching handler or entering <code>unexpected()</code> due to the throw; or after entering <code>terminate()</code> for any reason other than an explicit call to <code>terminate()</code>. [Note: This includes stack unwinding [15.2]. end note]'</p> <p>2: 'When <code>uncaught_exception()</code> is true, throwing an exception can result in a call of <code>terminate()</code> (15.5.1).' </p> </div> </div> <a id="ga742bf00b19772819acc97ae5e8f4bebe"></a> <h2 class="memtitle"><span class="permalink"><a href="#ga742bf00b19772819acc97ae5e8f4bebe">◆ </a></span>unexpected()</h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void std::unexpected </td> <td>(</td> <td class="paramname"></td><td>)</td> <td></td> </tr> </table> </div><div class="memdoc"> <p>The runtime will call this function if an exception is thrown which violates the function's exception specification. </p> </div> </div> </div><!-- contents --> </div><!-- doc-content --> <!-- start footer part --> <div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> <ul> <li class="footer">Generated by <a href="http://www.doxygen.org/index.html"> <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li> </ul> </div> </body> </html>