rspec/rules/S2979/java/rule.adoc

75 lines
1.4 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
2022-02-04 17:28:24 +01:00
[source,java]
2021-04-28 16:49:39 +02:00
----
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
2022-02-04 17:28:24 +01:00
[source,java]
2021-04-28 16:49:39 +02:00
----
@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}
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[]