1

以下のような例外をキャッチしようとしています-

try {

} catch (const std::exception& ex) {
    cout << "An exception occurred when executing query. " << ex << endl;
}

しかし、このエラーが発生するたびに-

no match for operator<< in std::operator<< <std::char_traits<char> >((* & std::cout), ((const char*)"An exception occurred when executing query. ")) << ex

私がここで何をしているのか分かりませんか?

4

3 に答える 3

3

これを使って

cout << "An exception occurred when executing query. " << ex.what() << endl;

<<演算子はクラスでオーバーロードされていませんexception

于 2013-10-16T17:47:41.443 に答える
1

operator<<(std::ostream&, std::exception const&)コンパイラは、 anが宣言されていないことを (しようとして) 伝えています。

于 2013-10-16T17:49:32.640 に答える
1

<<に一致する演算子のオーバーロードはありませんstd::exceptionex.what()代わりに 使用してください。理解できる aをwhat()返します。参考: http ://www.cplusplus.com/reference/exception/exception/what/char*<<

于 2013-10-16T17:49:36.977 に答える