2021-04-28 16:49:39 +02:00
|
|
|
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
|
|
|
|
|
2021-04-28 18:08:03 +02:00
|
|
|
|
2021-04-28 16:49:39 +02:00
|
|
|
== 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
|
|
|
|
----
|
|
|
|
|
2021-04-28 18:08:03 +02:00
|
|
|
|
2021-04-28 16:49:39 +02:00
|
|
|
== Compliant Solution
|
|
|
|
|
|
|
|
----
|
|
|
|
@Test
|
|
|
|
public void testMethod1() throws MyException {
|
|
|
|
foo();
|
|
|
|
}
|
|
|
|
|
|
|
|
@Test
|
|
|
|
public void testMethod2() {
|
|
|
|
}
|
|
|
|
|
|
|
|
@Test
|
|
|
|
public void testMethod3()throws Throwable {}
|
|
|
|
|
|
|
|
@Test
|
|
|
|
public void testMethod4() {}
|
|
|
|
----
|
|
|
|
|
2021-04-28 18:08:03 +02:00
|
|
|
|
2021-04-28 16:49:39 +02:00
|
|
|
== See
|
|
|
|
|
|
|
|
* Related rule {S1130}
|
2021-04-28 18:08:03 +02:00
|
|
|
|
2021-06-02 20:44:38 +02:00
|
|
|
|
2021-06-03 09:05:38 +02:00
|
|
|
ifdef::env-github,rspecator-view[]
|
2021-06-08 15:52:13 +02:00
|
|
|
'''
|
2021-06-02 20:44:38 +02:00
|
|
|
== Comments And Links
|
|
|
|
(visible only on this page)
|
|
|
|
|
|
|
|
include::comments-and-links.adoc[]
|
2021-06-03 09:05:38 +02:00
|
|
|
endif::env-github,rspecator-view[]
|