Namespaces
Variants

std::bad_exception

ja.cppreference.net より
 
 
ユーティリティライブラリ
言語サポート
型サポート (基本型、RTTI)
ライブラリ機能テストマクロ (C++20)
プログラムユーティリティ
可変引数関数
コルーチンサポート (C++20)
契約サポート (C++26)
三方比較
(C++20)
(C++20)(C++20)(C++20)    
(C++20)(C++20)(C++20)

汎用ユーティリティ
関係演算子 (C++20で非推奨)
整数比較関数
(C++20)(C++20)(C++20)    
(C++20)
スワップおよび型操作
(C++14)
(C++11)
(C++11)
(C++11)
(C++17)
共通語彙型
(C++11)
(C++17)
(C++17)
(C++17)
(C++11)
(C++17)
(C++23)



 
 
 
ヘッダ <exception>
class bad_exception;

std::bad_exception で定義されています。

  • std::bad_exception は、以下の状況で C++ ランタイムによって投げられる例外の型です: もし std::exception_ptr がキャッチした例外のコピーを格納し、かつ std::current_exceptionstd::bad_exception によってキャッチされた例外オブジェクトのコピーコンストラクタが例外を投げた場合、キャプチャされた例外は
のインスタンスとなります。
  • (C++11から)もし 動的例外仕様 に違反し、std::unexpectedstd::bad_exception が例外仕様にまだ違反する例外を投げるまたは再スローするものの、例外仕様が std::bad_exception を許可している場合、
が投げられます。
cpp/error/exception

(C++17まで)

継承図std::bad_exceptionconstexpr のすべてのメンバ関数は

です。

メンバー関数

bad_exceptionオブジェクトを構築する
(public member function)
オブジェクトをコピーする
(public member function)
[virtual]
説明文字列を返す
(virtual public member function)

std::exception から継承 std:: exception

メンバ関数

[virtual]
例外オブジェクトを破棄
(std::exception の仮想公開メンバ関数)
[virtual]
説明文字列を返す
(std::exception の仮想公開メンバ関数)

注記

機能テスト マクロ 値 標準 機能
__cpp_lib_constexpr_exceptions 202411L (C++26) constexpr 例外型のためのconstexpr

例

C++14またはそれ以前のモードでのみコンパイルされます(警告が発行される場合があります)。

#include <exception>
#include <iostream>
#include <stdexcept>
void my_unexp()
{
    throw;
}
void test()
    throw(std::bad_exception) // Dynamic exception specifications
                              // are deprecated in C++11
{
    throw std::runtime_error("test");
}
int main()
{
    std::set_unexpected(my_unexp); // Deprecated in C++11, removed in C++17
    try
    {
        test();
    }
    catch (const std::bad_exception& e)
    {
        std::cerr << "Caught " << e.what() << '\n';
    }
}

出力例:

Caught std::bad_exception