rspec/rules/S2979/java/rule.adoc

58 lines
1.1 KiB
Plaintext
Raw Normal View History

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 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 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 16:49:39 +02:00
== See
* Related rule {S1130}