Summary: In this tutorial, you will learn how to use the Java throw
statement to raise an exception explicitly in the program.
Introduction to the Java throw statement
The throw
statement allows you to explicitly raise an exception within your code. The throw
statement throws an exception explicitly and interrupts the normal flow of the program.
Here’s the syntax of the throw
statement:
throw throwable;
Code language: Java (java)
In this syntax, the throwable
is an object of a class that extends the Throwable
class.
Java throw statement example
The following example defines a method calculatePerimeterSquare()
that calculates the perimeter of a square by its length:
public class App {
public static double calculatePerimeterSquare(double length) {
return 4 * length;
}
public static void main(String[] args) {
var length = 10;
var perimeter = calculatePerimeterSquare(length);
System.out.println("The perimeter of the square is " + perimeter);
}
}
Code language: Java (java)
The problem is that you can pass zero or negative to the calculatePerimeterSquare()
and get back an incorrect perimeter. For example:
public class App {
public static double calculatePerimeterSquare(double length) {
return 4 * length;
}
public static void main(String[] args) {
var length = -10;
var perimeter = calculatePerimeterSquare(length);
System.out.println("The perimeter of the square is " + perimeter);
}
}
Code language: Java (java)
Output:
The perimeter of the square is -40.0
Code language: Java (java)
To make the problem more robust, you need to validate the length
argument in the calculatePerimeterSquare()
method before calculating the perimeter.
The length
is valid if its value is positive.
Also, you can throw an exception stating that zero or negative length is invalid.
The caller of the calculatePerimeterSquare()
needs to handle the exception using the try catch
statement.
The following program illustrates how to use the throw
statement to raise an exception if the length
is zero or negative:
public class App {
public static double calculatePerimeterSquare(double length) {
if (length <= 0) {
throw new IllegalArgumentException("The length must be positive.");
}
return 4 * length;
}
public static void main(String[] args) {
var length = -10;
var perimeter = calculatePerimeterSquare(length);
System.out.println("The perimeter of the square is " + perimeter);
}
}
Code language: Java (java)
In this example, we use the throw
statement to raise an IllegalArgumentException
with a message.
If you run the program and pass a negative value to the method calculatePerimeterSquare
, you’ll get the IllegalArgumentException
with a detailed message:
Exception in thread "main" java.lang.IllegalArgumentException: The length must be positive
Code language: Java (java)
To prevent the program from crashing, you can place the method call inside a try catch
block like this:
public class App {
public static double calculatePerimeterSquare(double length) {
if (length <= 0) {
throw new IllegalArgumentException("The length must be positive.");
}
return 4 * length;
}
public static void main(String[] args) {
var length = -10;
try {
var perimeter = calculatePerimeterSquare(length);
System.out.println("The perimeter of the square is " + perimeter);
} catch (IllegalArgumentException e) {
System.err.println(e.getMessage());
}
}
}
Code language: Java (java)
Output:
The length must be positive.
Code language: Java (java)
Summary
- Use the Java
throw
statement to throw an exception explicitly in your code.