Prerequisite: Throw and Throws in Java
The throw and throws are the concepts of exception handling in Java where the throw keyword throws the exception explicitly from a method or a block of code, whereas the throws keyword is used in the signature of the method.
The differences between throw and throws in Java are:
|
S. No. |
Key Difference |
throw |
throws |
|---|---|---|---|
| 1. | Point of Usage | The throw keyword is used inside a function. It is used when it is required to throw an Exception logically. | The throws keyword is used in the function signature. It is used when the function has some statements that can lead to exceptions. |
| 2. | Exceptions Thrown | The throw keyword is used to throw an exception explicitly. It can throw only one exception at a time. | The throws keyword can be used to declare multiple exceptions, separated by a comma. Whichever exception occurs, if matched with the declared ones, is thrown automatically then. |
| 3. | Syntax | Syntax of throw keyword includes the instance of the Exception to be thrown. Syntax wise throw keyword is followed by the instance variable. | Syntax of throws keyword includes the class names of the Exceptions to be thrown. Syntax wise throws keyword is followed by exception class names. |
| 4. | Propagation of Exceptions | throw keyword cannot propagate checked exceptions. It is only used to propagate the unchecked Exceptions that are not checked using the throws keyword. | throws keyword is used to propagate the checked Exceptions only. |
Examples
1. Java throw
Java
// Java program to demonstrate the working // of throw keyword in exception handling  public class GFG {    public static void main(String[] args)    {        // Use of unchecked Exception        try {            // double x=3/0;            throw new ArithmeticException();        }        catch (ArithmeticException e) {            e.printStackTrace();        }    }} |
Output:Â
java.lang.ArithmeticException
at GFG.main(GFG.java:10)
2. Java throws
Java
// Java program to demonstrate the working// of throws keyword in exception handlingimport java.io.*;import java.util.*;  public class GFG {      public static void writeToFile() throws Exception    {        BufferedWriter bw = new BufferedWriter(            new FileWriter("myFile.txt"));        bw.write("Test");        bw.close();    }      public static void main(String[] args) throws Exception    {        try {            writeToFile();        }        catch (Exception e) {            e.printStackTrace();        }    }} |
Output:
java.security.AccessControlException: access denied ("java.io.FilePermission" "myFile.txt" "write")
at GFG.writeToFile(GFG.java:10)
