jQuery in Action, 3rd edition
The moose likes Programmer Certification (SCJP/OCPJP) and the fly likes Exception Doubt pls help Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Certification » Programmer Certification (SCJP/OCPJP)
Bookmark "Exception Doubt pls help" Watch "Exception Doubt pls help" New topic

Exception Doubt pls help

Vepa Sritej
Ranch Hand

Joined: Jul 31, 2006
Posts: 42
the following code

In this case doThat() method is handling the exception and not declaring it... and also doThis() is not declaring it... it works...
why is the handle or declare rule not working with doThis() method it is still not declaring..

But if we change this code to

doThat() is both declaring as well as handling the exception ..now i get a compiler error stating the call to doThat() in doThis() is not handled.

tej<br /> <br />SCJP 1.5 --75%<br />SCWCD --89%<br />SCBCD/Web Services!! Yet to Decide
Neelesh Bodas
Ranch Hand

Joined: Jul 20, 2006
Posts: 107
The handle-or-declare rule (in context of a method M) applys to the checked exceptions that are thrown in the method M , or that are declared by the methods called inside M.

In the first case, the doThat() method throws and handles the exception. Since the checked exception that might be thrown is handled, the handle-or-declare rule is seen in action here. Now, for doThis() method, no checked exception gets thrown in the method. Also, none of the methods that doThis() calls declares any of the checked exception. Hence doThis() method neither needs to declare any exception, nor needs to catch any exception. (Note that the exception that might be thrown in doThat() method is never escaped from doThat() method and hence doThis() method is not even aware of this exception. )

In the second case, you are explicitly declaring that exception of class Exception (or its any subclass) might escape doThat() method. In this case, doThis() method needs to either handle or declare this exception according to the rule stated above.
Keith Lynn
Ranch Hand

Joined: Feb 07, 2005
Posts: 2398
In the first code, the method throws and catches the exception so there is nothing to propogate to doThis().

In the second code, since you declare that doThat throws Exception, and Exception is a checked exception, doThis must either catch and handle an Exception or declare that it throws Exception.
I agree. Here's the link: http://aspose.com/file-tools
subject: Exception Doubt pls help
It's not a secret anymore!