<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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.15"/> <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"> /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ $(document).ready(initResizable); /* @license-end */</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.15 --> </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"> /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ $(document).ready(function(){initNavTree('a01486.html','');}); /* @license-end */ </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="a01464.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="a01486.svg" width="535" height="224"><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="a05332.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="a10596.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="a01644.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="a05428.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="a01656.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="a01672.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="a07080.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="a01676.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="a06888.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="a02788.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="a05424.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="a09896.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="a10000.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="a02228.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="a02792.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="a05800.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="a02796.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="a02784.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="a05992.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="a02800.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="a02812.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="a02808.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="a06816.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="a02804.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="a02848.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="a02816.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:gab22babbf72ee745072d07bd5db3d1b81"><td class="memTemplParams" colspan="2"><a id="gab22babbf72ee745072d07bd5db3d1b81"></a> template<typename _Tp > </td></tr> <tr class="memitem:gab22babbf72ee745072d07bd5db3d1b81"><td class="memTemplItemLeft" align="right" valign="top">using </td><td class="memTemplItemRight" valign="bottom"><b>std::__rethrow_if_nested_cond</b> = typename <a class="el" href="a04188.html">enable_if</a>< __and_< <a class="el" href="a03484.html">is_polymorphic</a>< _Tp >, __or_< __not_< <a class="el" href="a03888.html">is_base_of</a>< <a class="el" href="a05992.html">nested_exception</a>, _Tp > >, <a class="el" href="a03900.html">is_convertible</a>< _Tp *, <a class="el" href="a05992.html">nested_exception</a> * > >>::value >::type</td></tr> <tr class="separator:gab22babbf72ee745072d07bd5db3d1b81"><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:gafa30d9d5834dc62f10d414111a0bfae5"><td class="memTemplParams" colspan="2"><a id="gafa30d9d5834dc62f10d414111a0bfae5"></a> template<typename _Ex > </td></tr> <tr class="memitem:gafa30d9d5834dc62f10d414111a0bfae5"><td class="memTemplItemLeft" align="right" valign="top">__rethrow_if_nested_cond< _Ex > </td><td class="memTemplItemRight" valign="bottom"><b>std::__rethrow_if_nested_impl</b> (const _Ex *__ptr)</td></tr> <tr class="separator:gafa30d9d5834dc62f10d414111a0bfae5"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga78638e5f5b72d1ca11558010b2f87290"><td class="memItemLeft" align="right" valign="top"><a id="ga78638e5f5b72d1ca11558010b2f87290"></a> void </td><td class="memItemRight" valign="bottom"><b>std::__rethrow_if_nested_impl</b> (const void *)</td></tr> <tr class="separator:ga78638e5f5b72d1ca11558010b2f87290"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:gabbfdb00bd2407e06f1d5d2f1502e2553"><td class="memTemplParams" colspan="2"><a id="gabbfdb00bd2407e06f1d5d2f1502e2553"></a> template<typename _Tp > </td></tr> <tr class="memitem:gabbfdb00bd2407e06f1d5d2f1502e2553"><td class="memTemplItemLeft" align="right" valign="top">void </td><td class="memTemplItemRight" valign="bottom"><b>std::__throw_with_nested_impl</b> (_Tp &&__t, <a class="el" href="a01476.html#ga6a860513044e23d34e553ea986e83fa1">true_type</a>)</td></tr> <tr class="separator:gabbfdb00bd2407e06f1d5d2f1502e2553"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga0e1e470110ef051aa15d4e3d3a9903bc"><td class="memTemplParams" colspan="2"><a id="ga0e1e470110ef051aa15d4e3d3a9903bc"></a> template<typename _Tp > </td></tr> <tr class="memitem:ga0e1e470110ef051aa15d4e3d3a9903bc"><td class="memTemplItemLeft" align="right" valign="top">void </td><td class="memTemplItemRight" valign="bottom"><b>std::__throw_with_nested_impl</b> (_Tp &&__t, <a class="el" href="a01476.html#gaebe6729ab5488ecc76c762873d226857">false_type</a>)</td></tr> <tr class="separator:ga0e1e470110ef051aa15d4e3d3a9903bc"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:gaf51888cedbc669a114cd79e39e0cd9be"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="a01486.html#gaf51888cedbc669a114cd79e39e0cd9be">__gnu_cxx::__verbose_terminate_handler</a> ()</td></tr> <tr class="separator:gaf51888cedbc669a114cd79e39e0cd9be"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga02cdcc517fefe661313437aa9356a28f"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a05428.html">exception_ptr</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="a01486.html#ga02cdcc517fefe661313437aa9356a28f">std::current_exception</a> () noexcept</td></tr> <tr class="separator:ga02cdcc517fefe661313437aa9356a28f"><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="a05428.html">exception_ptr</a> </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a01486.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="a01486.html#ga64d0b68338d7edbfd7d95f4177dbc442">std::rethrow_exception</a> (<a class="el" href="a05428.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="a01486.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: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="a01486.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:gab115ebeb6ac845ab4f4336617ad33165"><td class="memItemLeft" align="right" valign="top">virtual const char * </td><td class="memItemRight" valign="bottom"><a class="el" href="a01486.html#gab115ebeb6ac845ab4f4336617ad33165">std::exception::what</a> () const _GLIBCXX_TXN_SAFE_DYN noexcept</td></tr> <tr class="separator:gab115ebeb6ac845ab4f4336617ad33165"><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">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="a01538.html#aa53bcb9876c7b393a9e9e26fc90d5811">std::set_terminate</a>(<a class="code" href="a01486.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="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="a05428.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> </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="a05428.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="a00332_source.html#l00179">179</a> of file <a class="el" href="a00332_source.html">exception_ptr.h</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="a05428.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> <p class="reference">Referenced by <a class="el" href="a00074_source.html#l00714">std::__basic_future< _Res & >::_M_get_result()</a>.</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="a00425_source.html#l00151">151</a> of file <a class="el" href="a00425_source.html">nested_exception.h</a>.</p> <p class="reference">References <a class="el" href="a00422_source.html#l00047">std::__addressof()</a>.</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="a00425_source.html#l00114">114</a> of file <a class="el" href="a00425_source.html">nested_exception.h</a>.</p> </div> </div> <a id="gab115ebeb6ac845ab4f4336617ad33165"></a> <h2 class="memtitle"><span class="permalink"><a href="#gab115ebeb6ac845ab4f4336617ad33165">◆ </a></span>what()</h2> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">virtual const char* std::exception::what </td> <td>(</td> <td class="paramname"></td><td>)</td> <td> const</td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">virtual</span><span class="mlabel">noexcept</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Returns a C-style character string describing the general cause of the current error. </p> <p>Reimplemented in <a class="el" href="a05800.html#a7ab1e57574a1dff9cdf603041cbe628a">std::ios_base::failure</a>, <a class="el" href="a02804.html#a261a33056182b4b5f047e7061d716380">std::runtime_error</a>, <a class="el" href="a01676.html#ad423bab305d43240e9798c55778ca199">std::bad_typeid</a>, <a class="el" href="a01672.html#a06dd9ba98e54d468ba243e7354c52714">std::bad_cast</a>, <a class="el" href="a02784.html#ae8b3821398a8d041bbfdf2c44c972569">std::logic_error</a>, <a class="el" href="a02228.html#a95833ed17fb6f056709e29abdc50f50c">std::future_error</a>, <a class="el" href="a06888.html#adfea1fffacfb8c9c39f374e16ec7315c">std::bad_weak_ptr</a>, <a class="el" href="a09896.html#a1304de0136b22b9b0949cd329de37d9e">std::experimental::fundamentals_v1::bad_any_cast</a>, <a class="el" href="a01656.html#a3559b1691d8a8138d5fb7aa79ac06cbe">std::bad_alloc</a>, <a class="el" href="a07080.html#adc08d09b07e62fe8943fdda5ab8f56af">std::bad_function_call</a>, and <a class="el" href="a01648.html#a039e9f2a4314de27076f0ab3c15da722">std::bad_exception</a>.</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.15 </li> </ul> </div> </body> </html>