urrent_exception  ](/w/cpp/error/current_exception "cpp/error/current exception") (C++11)  |  captures the current exception in a  [ std::exception_ptr ](/w/cpp/error/exception_ptr "cpp/error/exception ptr")   
(function)  [ [edit]
](https://en.cppreference.com/mwiki/index.php?title=Template:cpp/error/dsc_current_exception&action=edit)  
[ rethrow_exception  ](/w/cpp/error/rethrow_exception "cpp/error/rethrow exception") (C++11)  |  throws the exception from an  [ std::exception_ptr ](/w/cpp/error/exception_ptr "cpp/error/exception ptr")   
(function)  [ [edit]
](https://en.cppreference.com/mwiki/index.php?title=Template:cpp/error/dsc_rethrow_exception&action=edit)  
[ nested_exception  ](/w/cpp/error/nested_exception "cpp/error/nested exception") (C++11)  |  a mixin type to capture and store current exceptions   
(class)  [ [edit]
](https://en.cppreference.com/mwiki/index.php?title=Template:cpp/error/dsc_nested_exception&action=edit)  
[ throw_with_nested  ](/w/cpp/error/throw_with_nested "cpp/error/throw with nested") (C++11)  |  throws its argument with  [ std::nested_exception ](/w/cpp/error/nested_exception "cpp/error/nested exception") mixed in   
(function template)  [ [edit]
](https://en.cppreference.com/mwiki/index.php?title=Template:cpp/error/dsc_throw_with_nested&action=edit)  
[ rethrow_if_nested  ](/w/cpp/error/rethrow_if_nested "cpp/error/rethrow if nested") (C++11)  |  throws the exception from a  [ std::nested_exception ](/w/cpp/error/nested_exception "cpp/error/nested exception")   
(function template)  [ [edit]
](https://en.cppreference.com/mwiki/index.php?title=Template:cpp/error/dsc_rethrow_if_nested&action=edit)  
  
#####  Handling of failures in exception handling  
  
Defined in header ` [ <exception> ](/w/cpp/header/exception
"cpp/header/exception") `  
[ terminate  ](/w/cpp/error/terminate "cpp/error/terminate") |  function called when exception handling fails   
(function)  [ [edit]
](https://en.cppreference.com/mwiki/index.php?title=Template:cpp/error/dsc_terminate&action=edit)  
[ terminate_handler  ](/w/cpp/error/terminate_handler "cpp/error/terminate handler") |  the type of the function called by  [ std::terminate ](/w/cpp/error/terminate "cpp/error/terminate")   
(typedef)  [ [edit]
](https://en.cppreference.com/mwiki/index.php?title=Template:cpp/error/dsc_terminate_handler&action=edit)  
[ get_terminate  ](/w/cpp/error/get_terminate "cpp/error/get terminate") (C++11)  |  obtains the current terminate_handler   
(function)  [ [edit]
](https://en.cppreference.com/mwiki/index.php?title=Template:cpp/error/dsc_get_terminate&action=edit)  
[ set_terminate  ](/w/cpp/error/set_terminate "cpp/error/set terminate") |  changes the function to be called by  [ std::terminate ](/w/cpp/error/terminate "cpp/error/terminate")   
(function)  [ [edit]
](https://en.cppreference.com/mwiki/index.php?title=Template:cpp/error/dsc_set_terminate&action=edit)  
[ bad_exception  ](/w/cpp/error/bad_exception "cpp/error/bad exception") |  exception thrown when  [ std::current_exception ](/w/cpp/error/current_exception "cpp/error/current exception") fails to copy the exception object   
(class)  [ [edit]
](https://en.cppreference.com/mwiki/index.php?title=Template:cpp/error/dsc_bad_exception&action=edit)  
  
#####  Handling of exception specification violations (removed in C++17)  
  
[ unexpected  ](/w/cpp/error/unexpected "cpp/error/unexpected") (removed in C++17)  |  function called when dynamic exception specification is violated   
(function)  [ [edit]
](https://en.cppreference.com/mwiki/index.php?title=Template:cpp/error/dsc_unexpected&action=edit)  
[ unexpected_handler  ](/w/cpp/error/unexpected_handler "cpp/error/unexpected handler") (removed in C++17)  |  the type of the function called by  [ std::unexpected ](/w/cpp/error/unexpected "cpp/error/unexpected")   
(typedef)  [ [edit]
](https://en.cppreference.com/mwiki/index.php?title=Template:cpp/error/dsc_unexpected_handler&action=edit)  
[ get_unexpected  ](/w/cpp