1

クラス RecordingCommand を org.eclipse.emf.transaction.RecordingCommand から拡張しています。メソッドdoExecute()定義にはスローする例外が含まれていませんが、コード内に例外があり、それをキャッチして発生させたいオプションがあります。この種の例外をどのように処理すればよいですか?メッセージをスローしますeが、これが正しい方法かどうかわかりません。

Eを投げるだけの方が洗練されていると思うので、問題を理解していただければ幸いです

例外をスローする

@Override 
protected void doExecute() {
    try { 
        //my logic
   } catch(Exception e) {
        throw e;
   }
}
4

1 に答える 1

5

メソッドからいつでもスローできますが、これは句UncheckedExceptionで宣言する必要はありません。throws

RuntimeExceptionしたがって、その拡張またはそれRuntimeException自体のような未チェックの例外で例外をラップします。

try {
    //my logic
} catch(Exception e) {
     throw new RuntimeException(e);
}

完全を期すために、すべての例外をキャッチする単一のcatchブロックを持つことはお勧めできません。むしろ、メソッドがスローする可能性のある特定のタイプの例外をブロックExceptionする必要があります。catch

于 2013-02-14T08:06:15.903 に答える