• Class / Function / Type

      std::
    • Header file

      <>
    • Other / All

    最終更新日時(UTC):
    が更新

    履歴 編集

    function
    <exception>

    std::get_unexpected

    namespace std {
      using unexpected_handler = void(*)();
      unexpected_handler get_unexpected() noexcept;
    }
    

    この関数はC++11から非推奨となり、C++17で削除された。throwキーワードの代わりに使用するnoexceptキーワードでは、指定外の例外が発生することによるエラーは起こらない。

    概要

    予想外の例外が発生した場合の処理を行う関数を取得する。

    戻り値

    予想外の例外が発生した場合の処理を行う関数へのポインタ。 (デフォルトではおそらくヌルになる)

    #include <iostream>
    #include <stdexcept>
    
    void on_expected()
    {
      std::cout << "on expected" << std::endl;
    }
    
    int main()
    {
      std::unexpected_handler handler1 = std::get_unexpected();
      if (!handler1) {
        std::cout << "null handler" << std::endl;
      }
    
      std::set_unexpected(on_expected);
      std::unexpected_handler handler2 = std::get_unexpected();
      if (handler2) {
        handler2();
      }
    }
    

    出力

    on expected
    

    バージョン

    言語

    • C++11

    処理系

    参照