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 › difference-between-throw-and-throws-in-java
Difference Between throw and throws in Java
August 22, 2018 - You create an exception object and use throw to signal that an error has occurred. Used to manually throw an exception. Used inside a method. Can throw only one exception at a time.
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
April 16, 2021
[Java] ELI5: the difference between "throws" and "throw"
Use "throw" to actually throw an exception. Tag a method "throws [exception type]" to declare that that exception can be thrown by the method; if it's a checked exception the calling method will either have to catch the exception, or pass it up the call chain further by also declaring "throws [whatever]". Checked exceptions are for potential problems that are impossible for the program to anticipate; unchecked (runtime) exceptions are for bugs in the code. So NullPointerException is unchecked because you should write your code such that you never try to dereference null, but IOException is checked because if someone else deletes a file while you're reading it, there's nothing your code could do to prevent that. You use try/catch blocks to deal with a checked exception when you're at a point where you can do something sensible: Preferences prefs; File prefsFile; try { } catch (IOException e) { Dialog.error("Error trying to read from the preferences file, using default preferences instead"); prefs = Preferences.getDefaultPreferences(); } More on reddit.com
🌐 r/learnprogramming
2
1
June 5, 2014
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 24, 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
🌐
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 - The method may throw multiple exceptions. They are comma-separated at the end of a method declaration. We can put both, checked and unchecked exceptions in the throws. We have described the difference between them below.
🌐
GeeksforGeeks
geeksforgeeks.org › java › throw-throws-java
throw and throws in Java - GeeksforGeeks
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.
Published   August 5, 2025
🌐
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.
🌐
TechVidvan
techvidvan.com › tutorials › java-throw-and-throws
Difference Between throw and throws in Java - TechVidvan
November 8, 2023 - In function and method declarations, the word “throws” denotes the possibility that the code will throw one or more different exception types when called. It serves as a means of informing callers of the function or method that they must propagate or handle such exceptions.
🌐
Unstop
unstop.com › home › blog › top 10 key differences between throw vs. throws in java
Top 10 Key Differences Between Throw Vs. Throws In Java // Unstop
February 10, 2025 - In Java, throw is used to trigger exceptions, while throws declares them in a method. throw is inside methods; throws lists potential exceptions.
Find elsewhere
🌐
Medium
medium.com › javarevisited › throw-vs-throws-in-java-the-debate-that-never-ends-2281617c9aa9
🤔 Throw vs. Throws in Java: The Debate That Never Ends | by Rasathurai Karan | Javarevisited | Medium
March 18, 2025 - I still remember the first time I encountered throw and throws in Java. I had just started my journey as a software engineer, feeling proud after writing my first few hundred lines of code. Then, one…
🌐
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.
🌐
BeginnersBook
beginnersbook.com › 2013 › 04 › difference-between-throw-and-throws-in-java
Difference between throw and throws in java
Actually Throws keyword is used to throw the checked exceptions which a programmer doesn’t want to handle it so a programmer throws these exception so that compiler did not give an error but throw keyword is used to throw an built-in-exception or user defined exception explicitly so both concepts ...
🌐
Blogger
javahungry.blogspot.com › 2019 › 09 › difference-between-throw-and-throws.html
5 Difference Between throw and throws in Java with Examples | Java Hungry
Read Also : Difference between Checked and Unchecked Exception in Java · 1. Definition: throw is a statement and used in a method to explicitly throw an exception. throws keyword is used by a method to specify which exceptions can be thrown from the method. 2. Place of declaration: First we ...
🌐
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....
🌐
Blogger
javarevisited.blogspot.com › 2012 › 02 › difference-between-throw-and-throws-in.html
Difference between throw and throws in Exception handling - Java Example
Main difference between throw and throws is in there usage and functionality. where throws is used in method signature to declare Exception possibly thrown by any method, throw is actually used to throw Exception in Java code, here is an example of both throw and throws keyword which makes ...
🌐
Scaler
scaler.com › topics › difference-between-throw-and-throws
Difference between throw and throws in Java - Scaler Topics
February 26, 2024 - throw keyword indicates a problem with code execution. It is followed by an instance of Throwable. On the other hand, the throws keyword is used with the method declarations to indicate exceptions. Learn more on Scaler Topics.
🌐
TutorialsPoint
tutorialspoint.com › difference-between-throw-and-throws-in-java
Difference between throw and throws in Java
Both throw and throws are the concepts of exception handing in which throw is used to explicitly throw an exception from a method or any block of code while throws are used in the signature of the method to indicate that this method might throw on
🌐
Medium
medium.com › @gaddamnaveen192 › difference-between-throw-and-throws-in-java-971817abae81
Difference Between throw and throws in Java | by Gaddam.Naveen | Medium
February 9, 2025 - The throw keyword is used to explicitly throw an exception from a method or a block of code, while throws is used to declare that a method can potentially throw certain exceptions, leaving the responsibility of handling them to the caller.
🌐
C# Corner
c-sharpcorner.com › article › difference-between-throw-and-throws-in-exception-handling
Difference between Throw and Throws in Exception Handling
August 25, 2025 - Use throw when you want to throw an exception inside a method. Use throws when you declare that a method may throw an exception. Both are integral to Java’s exception handling mechanism, but serve different purposes.
🌐
Techkluster
techkluster.com › 2023 › 08 › 16 › java-throw-throws
Difference Between throw and throws in Java -
August 16, 2023 - In this example, the methodWithThrows method is declared with a throws clause to indicate that it may throw both IOException and SQLException. The difference between throw and throws can be summarized as follows:
🌐
CS Fundamentals
cs-fundamentals.com › tech-interview › java › difference-between-throw-and-throws-in-java
Difference between throw and throws in Java
Main difference between throw and throws in Java is that throw is used to throw an exception, whereas throws is used to declare an exception.
🌐
Testbook
testbook.com › home › key differences › difference between throw and throws in java - testbook.com
Difference between Throw and Throws in Java - Testbook.com
... Throw is used to explicitly throw an exception within a block of code or a method, while throws is used in a method signature to declare what exceptions a method can throw. The instance variable follows the throw keyword, while the exception ...