ErrorRuntimeExceptionThrowableException等の一般的な例外を使用すると、 本当のシステムエラーと、アプリケーションエラーを区別してハンドリングすることを妨げてしまいます。

違反コード例

public void foo(String bar) throws Throwable {  // Noncompliant
  throw new RuntimeException("My Message");     // Noncompliant
}

準拠方法

public void foo(String bar) {
  throw new MyOwnRuntimeException("My Message");
}

例外

オーバーライドされたメソッド内の一般的な例外は無視されます。

@Override
public void myMethod() throws Exception {...}

参考

補足事項

  • この内容は以下の、squid の説明文を日本語翻訳したものです。

    sonar-java/S112_java.html at master · SonarSource/sonar-java

  • リンク化したら使いやすいかもしれないので、1ルールごとに1ページ化しています。

  • こちらに原本はあります。

    • コメント