rspec/rules/S2979/java/rule.adoc

73 lines
1.3 KiB
Plaintext

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
----
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
----
@Test
public void testMethod1() throws MyException {
foo();
}
@Test
public void testMethod2() {
}
@Test
public void testMethod3()throws Throwable {}
@Test
public void testMethod4() {}
----
== See
* Related rule {S1130}
ifdef::env-github,rspecator-view[]
'''
== Implementation Specification
(visible only on this page)
include::message.adoc[]
'''
== Comments And Links
(visible only on this page)
include::comments-and-links.adoc[]
endif::env-github,rspecator-view[]