The IllegalArgumentException
is an unchecked exception in Java that is thrown to indicate an illegal or unsuitable argument passed to a method. It is one of the most common exceptions that occur in Java.
Since IllegalArgumentException
is an unchecked exception, it does not need to be declared in the throws clause of a method or constructor.
What Causes IllegalArgumentException
An IllegalArgumentException
code> occurs when an argument passed to a method doesn't fit within the logic of the usage of the argument. Some of the most common scenarios for this are:
- When the arguments passed to a method are out of range. For example, if a method declares an integer age as a parameter, which is expected to be a positive integer. If a negative integer value is passed, an
IllegalArgumentException
will be thrown. - When the format of an argument is invalid. For example, if a method declares a string email as a parameter, which is expected in an
email
address format. - If a null object is passed to a method when it expects a non-empty object as an argument.
IllegalArgumentException Example
Here is an example of a IllegalArgumentException
thrown when the argument passed to a method is out of range:
public class Person {
int age;
public void setAge(int age) {
if (age < 0) {
throw new IllegalArgumentException("Age must be greater than zero");
} else {
this.age = age;
}
}
public static void main(String[] args) {
Person person = new Person();
person.setAge(-1);
}
}
In this example, the main()
method calls the setAge()
method with the age
code> argument set to -1. Since setAge()
code> expects age to be a positive number, it throws an IllegalArgumentException
code>:
Exception in thread "main" java.lang.IllegalArgumentException: Age must be greater than zero
at Person.setAge(Person.java:6)
at Person.main(Person.java:14)
How to Resolve IllegalArgumentException
The following steps should be followed to resolve an IllegalArgumentException
in Java:
- Inspect the exception stack trace and identify the method that passes the illegal argument.
- Update the code to make sure that the passed argument is valid within the method that uses it.
- To catch the
IllegalArgumentException
, try-catch blocks can be used. Certain situations can be handled using a try-catch block such as asking for user input again instead of stopping execution when an illegal argument is encountered.
Track, Analyze and Manage Java Errors With Rollbar
![Rollbar in action](https://rollbar.com/wp-content/uploads/2022/04/[email protected])
Managing errors and exceptions in your code is challenging. It can make deploying production code an unnerving experience. Being able to track, analyze, and manage errors in real-time can help you to proceed with more confidence. Rollbar automates Java error monitoring and triaging, making fixing errors easier than ever. Try it today.