Difference between throw and throws

What exactly is the difference between between throw and throws? If both are used for the same purpose then why are both needed instead of one?

Questions by Kartheek11

Editorial / Best Answer

vegetto  

  • Member Since Jun-2008 | Jun 15th, 2008


hi there,
             
throw:the throw keyword is used to throw the exception manually,that is when you feel a particular line in your code, when executed is capable of having some exception then you use throw keyword as:
 
throw new MyException(arguments if any);
this leads to instantiating of the MyException class and exception is thrown


throws: this is to be used when you are not using the try catch statement in your code but you know that this particular class is capable of throwing so and so exception(only checked exceptions).in this you do not use try catch block but write using the throw clause at appropriate point in  you code and the exception is thrown to caller of the method and is handeled by it. eg:

void trouble()throws IOException,any other exceptions just separate them with commas.......
{
   /* throw statement at appropriate step,
    no need to use try catch here,exception would be thrown to caller and u should    provide try catch block to handle exception there else this process cotinues further till
   appropriately it is handeled or prog terminates abruptly */
}


this is called as HANDLE OR DECLARE RULE  i.e either u handle exceptions using try catch block or by declaring them
 

 

Showing Answers 1 - 6 of 6 Answers

they are not same.

"throws" declares that your method is capable of throwing an exception.

"throw" actually  does the work ,  of throwing the exception.

example :

public void doSomething() throws ApplicationException
{
    try{
        }
    catch(Exception e){
            // catch all excpetions n provide some meaningful message
            throw ApplicationException("An error occurred while trying connect to DB");
        }
}

vegetto

  • Jun 15th, 2008
 

hi there,
             
throw:the throw keyword is used to throw the exception manually,that is when you feel a particular line in your code, when executed is capable of having some exception then you use throw keyword as:
 
throw new MyException(arguments if any);
this leads to instantiating of the MyException class and exception is thrown


throws: this is to be used when you are not using the try catch statement in your code but you know that this particular class is capable of throwing so and so exception(only checked exceptions).in this you do not use try catch block but write using the throw clause at appropriate point in  you code and the exception is thrown to caller of the method and is handeled by it. eg:

void trouble()throws IOException,any other exceptions just separate them with commas.......
{
   /* throw statement at appropriate step,
    no need to use try catch here,exception would be thrown to caller and u should    provide try catch block to handle exception there else this process cotinues further till
   appropriately it is handeled or prog terminates abruptly */
}


this is called as HANDLE OR DECLARE RULE  i.e either u handle exceptions using try catch block or by declaring them
 

 

Give your answer:

If you think the above answer is not correct, Please select a reason and add your answer below.

 

Related Answered Questions

 

Related Open Questions