したがって、私はtry/catchブロックのためにC++ referenceを見ています。C++キャッチ(...)ブロックからエラーメッセージを取得するには?
私はそうのような例外を捕捉するために、いくつかの方法がある参照:
try {
f();
} catch (const std::overflow_error& e) {
// this executes if f() throws std::overflow_error (same type rule)
} catch (const std::runtime_error& e) {
// this executes if f() throws std::underflow_error (base class rule)
} catch (const std::exception& e) {
// this executes if f() throws std::logic_error (base class rule)
} catch (...) {
// this executes if f() throws std::string or int or any other unrelated type
}
私はあなたがそうのような「e」のデータを取り込むことができ、以下の例で参照してください。
std::cout << e.what();
だから私の質問は次の通りです:
catch(...)
で例外データを取得するにはどうすればよいですか?
(サイド質問:?それも賢明catch(...)
を使用することです)一般的に
できません。 '...'をつかまえているなら、これは整数からstd :: stringまでの何でもかまいません。あなたが通常 '...'で行うべき唯一のことは、いくつかのロギングシステムでは未知の例外を記録し、再スローする(アプリケーションが終了するようにする)ことです。そして、あなたのコードをデバッグして、なぜ奇妙なものが投げられたのかを理解してください。 –
@LokiAstariさて、まあそれは意味をなさない。ありがとう:) – CodeLikeBeaker