Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
std::bad_exception(3)	      C++ Standard Libary	 std::bad_exception(3)

NAME
       std::bad_exception - std::bad_exception

Synopsis
	  Defined in header <exception>
	  class	bad_exception;

	  std::bad_exception  is  the  type of the exception thrown by the C++
       runtime in the
	  following situations:

	    * If std::exception_ptr stores a copy of the caught	exception  and
       if
	      the   copy   constructor	of  the	 exception  object  caught  by
       (since C++11)
	      std::current_exception throws an exception, the captured	excep-
       tion
	      is an instance of	std::bad_exception.
	    * If a dynamic exception specification is violated and
	      std::unexpected throws or	rethrows an exception that still
	      violates	 the   exception   specification,  but	the  exception
       (until C++17)
	      specification allows std::bad_exception, std::bad_exception is
	      thrown.

	  std-bad exception-inheritance.svg

					  Inheritance diagram

Member functions
	  constructor	constructs the bad_exception object
			(public	member function)
	  operator=	copies the object
			(public	member function)
	  what		returns	the explanatory	string
	  [virtual]	(virtual public	member function)

       Inherited from std::exception

Member functions
	  destructor   destroys	the exception object
	  [virtual]    (virtual	public member function of std::exception)
	  what	       returns an explanatory string
	  [virtual]    (virtual	public member function of std::exception)

Example
       // Run this code

	#include <iostream>
	#include <exception>
	#include <stdexcept>

	void my_unexp()	{ throw; }

	void test() throw(std::bad_exception)
	{
	    throw std::runtime_error("test");
	}

	int main()
	{
	    std::set_unexpected(my_unexp);
	    try	{
		 test();
	    } catch(const std::bad_exception& e)
	    {
		std::cerr << "Caught " << e.what() << '\n';
	    }
	}

Possible output:
	Caught std::bad_exception

http://cppreference.com		  2022.07.31		 std::bad_exception(3)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=std::bad_exception&sektion=3&manpath=FreeBSD+Ports+15.0>

home | help