2017-02-06 4 views
1

私はserviceImpl層でSONARはExceptionまたはRuntimeExceptionを拡張しますか?

public class MyCustomException extends RuntimeException { 
    public MyCustomException(Throwable cause) { 
     super(cause); 
     } 

     enter code here 

     /** 
     * @param message 
     * @param cause 
     */ 
     public MyCustomException(String message, Throwable cause) { 
     super(message, cause); 
     } 
    } 

@Override 
     public List<SiteDetails> getSite() throws MyCustomException { 
    } 

SONARの状態として記述されたカスタム例外クラスがスローされた例外の宣言を削除「.MyCustomException」実行時例外である持っています。

私は宣言を削除する必要がありますか、私はソナーの問題は非常に非常に主の意見に基づいている代わりにRuntimeException

答えて

0

のMyCustomExceptionクラスで例外を拡張する必要があります。
RuntimeExceptionは処理する必要がなく、宣言されていますが、このケースを記録するメソッドで宣言することは悪い習慣ではありません。

私は宣言を削除すべきか、あなたはMyCustomExceptionは必ずしもクライアントによって、MyCustomExceptionがすべき扱われなければなら例外であることを考えるならば、私は MyCustomExceptionクラスの代わりにRuntimeException

に例外を拡張する必要がありますRuntimeExceptionではなくExceptionに由来します。

そうでなければ、ほとんどの状況でクライアントが例外を処理できない場合は、Sonar Happyを作成する宣言を削除するか、この問題を偽陽性としてマークします(少なくとも試してみてください)。 RuntimeExceptionであっても例外を伝えます。

関連する問題