Teachnique
      CourseRoadmaps
      Login

      OverviewHistoryFeaturesJava 8 - New Featuresvs C++Virtual Machine(JVM)JDK vs JRE vs JVMHello World ProgramEnvironment SetupBasic SyntaxVariable TypesData TypesType CastingUnicode SystemBasic OperatorsCommentsStreamsNew Date-Time API

      Loop ControlDecision Makingif-else Statementswitch statementfor loopfor each Loopwhile Loopdo...while Loopbreak Statementcontinue Statement

      OOPs (Object-Oriented Programming) ConceptsObject and ClassesClass AttributesClass MethodsMethodsVariable ScopesConstructorsAccess ModifiersInheritanceAggregationPolymorphismOverridingMethod OverloadingDynamic BindingStatic BindingInstance Initializer BlockAbstractionEncapsulationInterfacesPackagesInner classesStatic ClassesAnonymous ClassesSingleton ClassWrapper ClassesEnum Class

      Number ClassBoolean classCharacter ClassArraysMath Class

      File ClassCreating FilesWrite To FilesReading FileDelete FilesDirectory OperationsFiles and I/O

      ExceptionsTry Catch BlockTry with ResourcesMultiple Catch BlocksNested Try BlockFinally BlockThrows and Throw | Throw an ExceptionException PropagationBuilt-in ExceptionsCustom Exception

      MultithreadingThread Life CycleCreating a ThreadStarting a ThreadJoining ThreadsNaming a Thread with ExamplesScheduling Threads with ExamplesThread PoolsMain ThreadThread PriorityDaemon ThreadThreadGroup ClassJVM Shutdown Hook

      Thread SynchronizationBlock SynchronizationStatic SynchronizationInter Thread CommunicationThread DeadlockInterrupting ThreadThread ControlReentrant Monitor

      NetworkingSocket ProgrammingURL ProcessingURL ClassURLConnection ClassHttpURLConnection ClassSocket Class with ExamplesGenerics

      Collections FrameworkCollection Interface

      List InterfaceArrayList Class

      Queue InterfaceArrayDeque Class

      Map InterfaceSortedMap Interface

      Set InterfaceSortedSet Interface

      Data Structures Enumeration Interface BitSet Class

      How to Use Iterator?How to Use Comparator?How to Use Comparable?

      RecursionRegular ExpressionsSerializationString ClassJava Arrays - Class

      Feedback

      Submit request if you have any questions.

      Course
      Throws and Throw | Throw an Exception

      Java Tutorial

      This Java tutorial is tailored for newcomers, offering a journey from basic principles to complex Java programming techniques. Completing this tutorial equips you with a solid understanding of Java, preparing you for advanced learning. You'll emerge ready to tackle the challenges of becoming a top-tier software engineer, with the skills to innovate and excel in the vast world of software development.

      Throw | Throws an Exception

      Java throws and throw

      If a method does not handle a checked exception, the method must declare it using the throws keyword. The throws keyword appears at the end of a method's signature.
      You can throw an exception, either a newly instantiated one or an exception that you just caught, by using the throw keyword.
      Try to understand the difference between throws and throw keywords, throws is used to postpone the handling of a checked exception and throw is used to invoke an exception explicitly.

      Syntax

      Following is the syntax of throwing an exception using throws and throw 
      method(parameters) throws exception {
      // Method implementation
      throw new exception();
      }
      The following method declares that it throws a RemoteException
      Consider the below example code to use throws and throw keywords
      import java.io.*;
      public class className {
      
      public void deposit(double amount) throws RemoteException {
      // Method implementation
      throw new RemoteException();
      }
      // Remainder of class definition
      }
      A method can declare that it throws more than one exception, in which case the exceptions are declared in a list separated by commas. For example, the following method declares that it throws a RemoteException and an InsufficientFundsException
      import java.io.*;
      public class className {
      
      public void withdraw(double amount) throws RemoteException,
      InsufficientFundsException {
      // Method implementation
      }
      // Remainder of class definition
      }

      Java Throws and Throw Example

      Following example shows the use of throw keyword to send an exception in case a invalid argument is passed. We're calling a divide method which checks if second parameter is zero then it will throw an IllegalArgumentException with a custom message. As IllegalArgumentException is an unchecked exception, the divide method is not required to declares throws statement. Now as parent method is not handling the exception, JVM intercepts the same and prints the error message and terminates the program.
      package com.tutorialspoint;
      
      public class ExcepTest {
      
      public static void main(String args[]) {
      int a = 3;
      int b = 0;
      System.out.println("result:" + divide(a,b));
      }
      
      private static int divide(int a, int b) {
      if(b == 0) {
      throw new IllegalArgumentException("second argument cannot be zero.");
      }
      return a / b;
      }
      }

      Output

      Exception in thread "main" java.lang.IllegalArgumentException: second argument cannot be zero.
      at com.tutorialspoint.ExcepTest.divide(ExcepTest.java:13)
      at com.tutorialspoint.ExcepTest.main(ExcepTest.java:8)

      More Examples

      Example 1: Throw an exception on invalid arguments

      Following example shows the use of throw and throws keywords to send an exception in case a invalid argument is passed and handle the exception. We're calling a divide method which checks if second parameter is zero then it will throw an Exception with a custom message. As Exception is a checked exception, the divide method is required to declares throws statement. Now as parent method is to either handle the exception or declares the throws exception, we're handling the exception and printing the message.
      package com.tutorialspoint;
      
      public class ExcepTest {
      
      public static void main(String args[]) {
      int a = 3;
      int b = 0;
      try {
      System.out.println("result:" + divide(a,b));
      } catch (Exception e) {
      System.out.println("Exception: " + e);
      }
      }
      
      private static int divide(int a, int b) throws Exception {
      if(b == 0) {
      throw new Exception("second argument cannot be zero.");
      }
      return a / b;
      }
      }

      Output

      Exception: java.lang.Exception: second argument cannot be zero.

      Example 2: Using throws and throw in main and other method

      Following example shows the use of throw and throws keywords to send an exception in case a invalid argument is passed and exception is not handled. We're calling a divide method which checks if second parameter is zero then it will throw an Exception with a custom message. As Exception is a checked exception, the divide method is required to declares throws statement. Now as parent method is to either handle the exception or declares the throws exception, we're declaring to throw the exception and JVM will handle the exception.
      package com.tutorialspoint;
      
      public class ExcepTest {
      
      public static void main(String args[]) throws Exception {
      int a = 3;
      int b = 0;
      System.out.println("result:" + divide(a,b));
      }
      
      private static int divide(int a, int b) throws Exception {
      if(b == 0) {
      throw new Exception("second argument cannot be zero.");
      }
      return a / b;
      }
      }

      Output

      Exception in thread "main" java.lang.Exception: second argument cannot be zero.
      at com.tutorialspoint.ExcepTest.divide(ExcepTest.java:15)
      at com.tutorialspoint.ExcepTest.main(ExcepTest.java:9)