第10章 エラー処理
AMQ C++ でのエラーは、以下の 2 つの方法で処理できます。
- 例外のキャッチ
- AMQP プロトコルまたは接続エラーを処理するための仮想関数のオーバーライド
例外の取得は最も基本的なものですが、エラーを処理する詳細な方法です。ハンドラールーチンでオーバーライドを使用してエラーが処理されない場合、例外が出力され、キャッチして処理することができます。
10.1. 例外の処理 リンクのコピーリンクがクリップボードにコピーされました!
ハンドラールーチンでオーバーライドを使用してエラーが処理されない場合、コンテナーの run メソッドによって例外が出力されます。
AMQ C++ が proton::error クラスから継承するすべての例外。これにより、 std::runtime_error クラスおよび std:: exception クラスが継承さ れます。
以下の例は、AMQ C++ から発生した例外をキャッチする方法を示しています。
例: API 固有の例外処理
try {
// Something that might throw an exception
} catch (proton::error& e) {
// Handle Proton-specific problems here
} catch (std::exception& e) {
// Handle more general problems here
}
API 固有の例外処理が必要ない場合は、proton::error が継承されるため 、std::exception のみをキャッチする必要があります。
例: 一般的な例外処理
int main() {
try {
// Something that might throw an exception
} catch (std::exception& e) {
std::cerr << "Caught exception: " << e.what() << std::endl;
}
}
C++ プログラムのすべての例外は std::exception から継承されるため、コードブロックを記述して main メソッドをラップし、std::exception エラーに関する情報を表示できます。