== Why is this an issue? An exception in a ``++throws++`` declaration in Java is superfluous if it is: * listed multiple times * a subclass of another listed exception * a ``++RuntimeException++``, or one of its descendants * completely unnecessary because the declared exception type cannot actually be thrown === Noncompliant code example [source,java] ---- void foo() throws MyException { throw new MyException(); } @Test public void testMethod1() throws MyException, MyException { // Noncompliant; should be listed once foo(); } @Test public void testMethod2() throws MyException { //Noncompliant, exception cannot be thrown } @Test public void testMethod3() throws Throwable, Exception {} // Noncompliant; Exception is a subclass of Throwable @Test public void testMethod4 throws RuntimeException {} // Noncompliant; RuntimeException can always be thrown ---- === Compliant solution [source,java] ---- @Test public void testMethod1() throws MyException { foo(); } @Test public void testMethod2() { } @Test public void testMethod3()throws Throwable {} @Test public void testMethod4() {} ---- == Resources * Related rule {S1130} ifdef::env-github,rspecator-view[] ''' == Implementation Specification (visible only on this page) === Message Remove this "throws xxx" declaration ''' == Comments And Links (visible only on this page) === on 28 May 2015, 07:26:37 Nicolas Peru wrote: I updated example with the case where exception cannot be thrown, otherwise LGTM endif::env-github,rspecator-view[]