12

私の Visual C++ コードは、文字列を受け入れる std::exception コンストラクターを使用しており、コードを Linux / G++ に移植しようとしています。どの例外クラスを使用すればよいですか?

4

1 に答える 1

16

Microsoft Visual C++ のstd::exception(const char*)コンストラクターは非標準です。C++ 標準ライブラリでは std::exception にconst char* what() constメソッドがありますが、オーバーライドする以外に文字列を指定する方法はありません。

std::runtime_error代わりに、または他のクラスのいずれかを使用するようにコードを書き直す必要があります<stdexcept>。std::runtime_error はそこから派生するため、もちろん std::exception をキャッチする既存のコードを変更する必要はありません。

于 2012-07-30T22:10:31.590 に答える