std::current_exception
提供: cppreference.com
![]() |
このページは、Google 翻訳を使って英語版から機械翻訳されました。
翻訳には誤りや奇妙な言い回しがあるかもしれません。文章の上にポインタをおくと、元の文章が見れます。誤りを修正して翻訳を改善する手助けをしてください。翻訳についての説明は、ここをクリックしてください。 |
Defined in header <exception>
|
||
std::exception_ptr current_exception() |
(C++11およびそれ以降) | |
(通常、catch句の中で)例外処理時に呼び出された場合、現在の例外オブジェクトを捕捉し、その例外オブジェクトへの参照を保持std::exception_ptrを作成するか、またはコピーがある場合は、その例外オブジェクトのコピーに(それは実装で定義されてい製)
Original:
If called during exception handling (typically, in a catch clause), captures the current exception object and creates an std::exception_ptr that holds a reference to that exception object, or to a copy of that exception object (it is implementation-defined if a copy is made)
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
この関数の実装はnewへの呼び出しを必要とし、呼び出しが失敗した場合は、返されたポインタはstd::bad_allocのインスタンスへの参照を保持します
Original:
If the implementation of this function requires a call to new and the call fails, the returned pointer will hold a reference to an instance of std::bad_alloc
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
この関数の実装は、キャプチャされた例外オブジェクトをコピーする必要があり、そのコピーコンストラクタが例外をスローした場合、返されるポインタは、スローされた例外への参照を保持します。スローされた例外オブジェクトのコピーコンストラクタはまた、スローされた場合、返されるポインタは、無限ループを断ち切るためにstd::bad_exceptionのインスタンスへの参照を保持するかもしれない.
Original:
If the implementation of this function requires to copy the captured exception object and its copy constructor throws an exception, the returned pointer will hold a reference to the exception thrown. If the copy constructor of the thrown exception object also throws, the returned pointer may hold a reference to an instance of std::bad_exception to break the endless loop.
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
例外が処理されているときに関数が呼び出された場合は、空のstd::exception_ptrが返されます。.
Original:
If the function is called when no exception is being handled, an empty std::exception_ptr is returned.
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
目次 |
[編集] パラメータ
(なし)
[編集] 値を返します
std::exception_ptrのインスタンスは例外オブジェクトへの参照を保持しているか、または例外オブジェクトのコピー、またはstd::bad_allocのインスタンスまたはstd::bad_exceptionのインスタンスへの.
Original:
An instance of std::exception_ptr holding a reference to the exception object, or a copy of the exception object, or to an instance of std::bad_alloc or to an instance of std::bad_exception.
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
[編集] 例外
[編集] 例
このコードを実行します
#include <iostream> #include <string> #include <exception> #include <stdexcept> void handle_eptr(std::exception_ptr eptr) // passing by value is ok { try { if (eptr != std::exception_ptr()) { std::rethrow_exception(eptr); } } catch(const std::exception& e) { std::cout << "Caught exception \"" << e.what() << "\"\n"; } } int main() { std::exception_ptr eptr; try { std::string().at(1); // this generates an std::out_of_range } catch(...) { eptr = std::current_exception(); // capture } handle_eptr(eptr); } // destructor for std::out_of_range called here, when the eptr is destructed
出力:
Caught exception "basic_string::at"
[編集] 参照
(C++11) |
例外オブジェクトを処理するための共有ポインタ型 Original: shared pointer type for handling exception objects The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (typedef) |
(C++11) |
std::exception_ptrから例外がスローされます Original: throws the exception from an std::exception_ptr The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (関数) |
(C++11) |
例外オブジェクトからstd::exception_ptrを作成します Original: creates an std::exception_ptr from an exception object The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (関数テンプレート) |