rspec/rules/S6416/java/rule.adoc

28 lines
830 B
Plaintext

== Why is this an issue?
It's common for methods to check the value of their parameters and throw an `IllegalArgumentException`
when one of them doesn't match a given condition.
Those conditions are usually mentioned in the javadoc of the method.
This rule raises an issue when it detects that a method call has an argument which will trigger an `IllegalArgumentException`.
=== Noncompliant code example
[source,java]
----
private void addFirst(Collection<String> collection, String element) {
if (collection instanceof List) {
((List<String>) collection).add(0, element);
} else {
throw new IllegalArgumentException();
}
}
public void caller() {
// Noncompliant: triggers an IllegalArgumentException because HashSet doesn't implement List
addFirst(new HashSet<>(), "hello");
}
----