throws tells others that this method can throw an exception. Think of it as documentation. Checked exceptions must be part of a method's signature.

throw actually throws the exception. (throw new Exception(); first creates a new exception instance and then throws that instance. You could use two separate statements: Exception ex = new Exception(); throw ex;) You can throw both checked and unchecked exceptions with the throw keyword.

void checked() throws Exception { // required, Exception is a checked exception
  throw new Exception();
}

void unchecked() {
  throw new RuntimeException(); // throws not required, RuntimeException is not checked
}

void checkedCall() throws Exception {
  checked(); // throws required, because "checked" can throw a checked exception
}

void caught() {
  try {
    checked();
  } catch (final Exception ex) {
    // throws is no longer required, because the (checked) exception is handled within the method itself. It never leaves the method.
  }
}

Regarding your updated question: you don't throw new ArithmeticException, because it is thrown by the JVM when it tries to apply the / operator. You can throw it manually if you want to, but that's just redundant code.

Answer from knittl on Stack Overflow
🌐
GeeksforGeeks
geeksforgeeks.org › java › throw-throws-java
throw and throws in Java - GeeksforGeeks
throws is a keyword in Java that is used in the signature of a method to indicate that this method might throw one of the listed type exceptions. The caller to these methods has to handle the exception using a try-catch block.
Published   August 5, 2025
Discussions

JAVA throws and throw?
Exceptions that are not a subclass of RuntimeException must be explicitly handled in Java. That way, you won't be surprised if someone forgets to put it in the comment or you forget to read the comment thoroughly. If your method calls a method that throws a particular exception, it's a compiler error unless you either catch the exception or declare that you throw that exception (which in turn forces any method that calls this method to deal with it). More on reddit.com
🌐 r/learnprogramming
3
1
May 17, 2021
ELI5: The difference between "throws" and "throw"
Throw is used when you want to say "here's an exception, someone take care of it". Throws is used to tag methods as "these exceptions may occur here". You would use try/catch/finally blocks when you're dealing with methods that can have exceptions (for example, I/O like reading a file, socket, or database) and/or when you want to handle that exceptional situation ("when there's a problem reading this file, I'll create a log entry and stop the process" or "if there's an issue reading from the database, write the SQL to the console"). The finally is used for the "no matter what happens, I need to clean up after myself", such as closing files, database connections, etc. The try-with-resources is another possibility here (catch and finally are both optional based on necessity) that will handle the cleanup automatically (an implicit finally that closes the resource). More on reddit.com
🌐 r/javahelp
5
2
January 26, 2015
Try/Catch vs Throws?
The try/catch block catches exceptions that are thrown, so they pretty much do opposite things. The throw exception says "Hey, here's an exception" and the try/catch block decides what to do with it (which can include printing an error message, throwing the exception again, throwing a slightly different exception, or handling the exception and continuing normally). More on reddit.com
🌐 r/learnprogramming
10
35
December 9, 2015
Throwing an exception and catching it within the same method? Is this bad practice?
Please ensure that: Your code is properly formatted as code block - see the sidebar (About on mobile) for instructions You include any and all error messages in full - best also formatted as code block You ask clear questions You demonstrate effort in solving your question/problem - plain posting your assignments is forbidden (and such posts will be removed) as is asking for or giving solutions. If any of the above points is not met, your post can and will be removed without further warning. Code is to be formatted as code block (old reddit/markdown editor: empty line before the code, each code line indented by 4 spaces, new reddit: https://i.imgur.com/EJ7tqek.png ) or linked via an external code hoster, like pastebin.com, github gist, github, bitbucket, gitlab, etc. Please, do not use triple backticks (```) as they will only render properly on new reddit, not on old reddit. Code blocks look like this: public class HelloWorld { public static void main(String[] args) { System.out.println("Hello World!"); } } You do not need to repost unless your post has been removed by a moderator. Just use the edit function of reddit to make sure your post complies with the above. If your post has remained in violation of these rules for a prolonged period of time (at least an hour), a moderator may remove it at their discretion. In this case, they will comment with an explanation on why it has been removed, and you will be required to resubmit the entire post following the proper procedures. To potential helpers Please, do not help if any of the above points are not met, rather report the post. We are trying to improve the quality of posts here. In helping people who can't be bothered to comply with the above points, you are doing the community a disservice. I am a bot, and this action was performed automatically. Please contact the moderators of this subreddit if you have any questions or concerns. More on reddit.com
🌐 r/learnjava
6
1
January 23, 2023
🌐
JetBrains
blog.jetbrains.com › idea › 2024 › 03 › easy-hacks-how-to-throw-java-exceptions
Easy Hacks: How to Throw Java Exceptions | The IntelliJ IDEA Blog
March 12, 2024 - In Java, you can use the throw keyword to invoke the exception machinery in the Java Virtual Machine (JVM): ... When throwing an exception, you’re creating a new exception object.
🌐
Baeldung
baeldung.com › home › java › core java › difference between throw and throws in java
Difference Between Throw and Throws in Java | Baeldung
January 9, 2024 - In Java, every subclass of Error and RuntimeException is an unchecked exception. A checked exception is everything else under the Throwable class.
🌐
Scaler
scaler.com › topics › throw-and-throws-in-java
throw and throws in Java - Scaler Topics
February 20, 2024 - Java Exception Handling preserves the regular flow of applications by managing runtime errors like ClassNotFoundException, IOException, SQLException, and RemoteException. throw and throws in Java are used to handle exceptions.
🌐
Software Testing Help
softwaretestinghelp.com › home › java › try, catch, finally and throw in java with examples
Try, Catch, Finally And Throw In Java With Examples
April 1, 2025 - Let us now implement a Java program to demonstrate the “throws” keyword. In this program, we have a class Example_throw in which we have a method testMethod. In the signature of this testMethod, we declare two exceptions IOException and Arithmetic Exception using the throws keyword.
Find elsewhere
🌐
Testbook
testbook.com › home › key differences › difference between throw and throws in java - testbook.com
Difference between Throw and Throws in Java - Testbook.com
The 'throws' keyword is used to declare the exceptions that a method can potentially throw, while the 'throw' keyword is used to explicitly throw an exception from within a block of code or a method.
🌐
Programiz
programiz.com › java-programming › throw-throws
Java throw and throws Keyword
In this tutorial, you will learn to use throw and throws keyword for exception handling with the help of examples. We use the throws keyword in the method declaration to declare the type of exceptions that might occur within it.
🌐
Quora
quora.com › What-is-the-difference-between-throw-and-throws-in-Java-2
What is the difference between ‘throw’ and ‘throws’ in Java? - Quora
Answer (1 of 2): throw throws 1) Java throw keyword is used to explicitly throw an exception. Java throws keyword is used to declare an exception. 2) Checked exception cannot be propagated using throw only.
🌐
W3Schools
w3schools.com › java › ref_keyword_throws.asp
Java throws Keyword
The throws keyword indicates what exception type may be thrown by a method. There are many exception types available in Java: ArithmeticException, ClassNotFoundException, ArrayIndexOutOfBoundsException, SecurityException, etc.
🌐
Oracle
docs.oracle.com › javase › tutorial › essential › exceptions › throwing.html
How to Throw Exceptions (The Java™ Tutorials > Essential Java Classes > Exceptions)
The figure below illustrates the class hierarchy of the Throwable class and its most significant subclasses. As you can see, Throwable has two direct descendants: Error and Exception. The Throwable class. When a dynamic linking failure or other hard failure in the Java virtual machine occurs, the virtual machine throws an Error.
🌐
GeeksforGeeks
geeksforgeeks.org › java › difference-between-throw-and-throws-in-java
Difference Between throw and throws in Java - GeeksforGeeks
July 11, 2025 - 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.
🌐
Medium
medium.com › @ashishalok1432 › throw-and-throws-in-java-0c1cc0d40462
Throw and Throws in java. In Java, the throw keyword is used to… | by Ashish Alok | Medium
October 20, 2024 - Throw and Throws in java In Java, the throw keyword is used to explicitly throw an exception from a method or any block of code. When you throw an exception, it creates an instance of the Throwable …
🌐
Edureka
edureka.co › blog › throw-throws-throwable
Difference Between throw throws and throwable In Java | Edureka
August 5, 2019 - Throw: The throw keyword in Java is used to explicitly throw an exception from a method or any block of code. We can throw either checked or unchecked exception. The throw keyword is mainly used to throw custom exceptions.
🌐
Rollbar
rollbar.com › home › how to use the throws keyword in java (and when to use throw)
When and Why to Use Throw vs Throws in Java Exception Handling | Rollbar
September 16, 2024 - ... As seen in the syntax above, ... should be separated by a comma in the declaration. The throw keyword in Java is used for explicitly throwing a single exception....
🌐
Shiksha
shiksha.com › home › it & software › it & software articles › programming articles › difference between throw and throws
Difference Between Throw and Throws - Shiksha Online
June 11, 2024 - The main difference between Throw and Throws keywords in Java programming is that you can use the Throw keyword to throw an exception explicitly in the code.
🌐
Studytonight
studytonight.com › java › throw-throws-and-finally-keyword.php
Java throw, throws and finally in Exception Handling | Studytonight
The throw keyword is used to throw an exception and throws is used to declare the list of possible exceptions with the method signature. Whereas finally block is used to execute essential code, specially to release the occupied resources. Now lets discuss each in details with the examples.
🌐
Medium
medium.com › javarevisited › how-to-throw-exceptions-in-java-using-throw-throws-keywords-throwing-exceptions-7082007f6462
How To Throw Exceptions In Java Using throw, throws Keywords | Throwing Exceptions | by Mouad Oumous | Javarevisited | Medium
February 22, 2024 - The throw and throws is the concept of exception handling where the throw keyword throw the exception explicitly from a method or a block of code whereas the throws keyword is used in signature of the method.
🌐
Habr
habr.com › en › articles › 771890
How to Use Throw and Throws in Java / Habr
November 4, 2023 - Ans. A throw keyword is used to throw an exception explicitly. This keyword can throw only one exception at a time. A throws keyword can be used to declare multiple exceptions separated by a comma(,). Q2: Can we use throw without try?