MBean 操作の適切な例外処理戦略は何ですか? これらの操作の一部は失敗する可能性があり (接続されていないユーザーの削除など)、例外が報告されるはずですが、例外がどのように JMX レイヤーに浸透するのかわかりません。私の最良のアイデアは、C スタイルのリターン コードです。
2290 次
1 に答える
5
これは、 MBeanServerConnection.invokeからスローされると宣言されているjavax.management.MBeanExceptionの意図です。JavaDoc から引用するには:
エージェントの MBean メソッドによってスローされる「ユーザー定義」の例外を表します。スローされた実際の「ユーザー定義」例外を「ラップ」します。
したがって、不可解な整数コード (または大きいほど良い場合は BigDecimal ;) を返すのではなく、「ビジネス例外」をトラップし、ビジネス例外を使用して新しい MBeanException を作成し、それをスローします。ビジネス例外がシリアライズ可能であり、呼び出し元のクラスパスに存在する場合、呼び出し元は JMX 例外をアンラップしてビジネス例外に到達できるはずです。
これらの仮定のいずれかが当てはまらない場合は、ビジネス例外クラス名とメッセージに基づいてメッセージを作成し、新しい Exception から MBeanException を作成して (スタック トレースを取得します)、新しいエラー メッセージを取得します。
于 2012-09-10T21:15:08.963 に答える