0

私はlibpqxxを使用していますが、次の問題に悩まされています。

のいくつかの関数は、ファイルのように、pqxx:connection_baseクラスが例外をスローすると言うことができconnection_base.hxxます:

void disconnect() throw ();

私の質問は、どのような種類の例外がスローされるかをどのように推測できるかということです。、、を期待しpqxx::exceptionますpqxx::sql_errorか?インクルードファイルは私には役に立たないように思えます。ドキュメント、Doxygenで生成されたファイルは明らかに役に立ちません。

4

1 に答える 1

1
void disconnect() throw ();
                  ^^^^^^^^^^

空のthrowを使用したException仕様は、この関数が例外をスローしないことを示しています。

関数が示す例外を推測しないでください。関数に例外仕様を含めないでください。つまり、例外をスローできます(catch allハンドラーでキャッチできますcatch(...)。注:これは悪い習慣です)。または、どの例外を文書化する必要があります。投げることができます。

この場合、少なくともドキュメントには、関数のプロバイダーに例外が報告されない限り、例外をスローしてはならないと記載されています。

于 2012-06-01T10:22:46.170 に答える