2

Boost.Test を使用して、いくつかの古い C 数学ライブラリに対して単体テストを作成しています。テスト済みの関数の 1 つは、指定された入力に対して 0 による整数除算システム例外を発生させることが知られています。それが望ましい動作であり、この場合の否定的なテストを書きたいとしましょう。

BOOST_REQUIRE_THROW(statement, exception);C++スタイルの例外ではないため、私にとっては機能しません(このマクロはtry {} catch {}内部で使用されています)。

システム レベルで障害が発生することが予想される場合、ケースを処理する正しい方法は何ですか?

4

1 に答える 1

1

Windowsなので、 _set_se_translator()WindowsAPIを調べることをお勧めします。これにより、C++で構造化例外を処理できますcatch

ハンドラーをインストールするなど、他の可能な方法もありますが、これにより、最小限のプログラミング作業でC++例外であるかのように均一な例外処理が可能になります。

于 2011-12-12T23:51:15.543 に答える