28 lines
830 B
Plaintext
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");
|
|
}
|
|
----
|
|
|