• Post Reply Bookmark Topic Watch Topic
  • New Topic
programming forums Java Mobile Certification Databases Caching Books Engineering Micro Controllers OS Languages Paradigms IDEs Build Tools Frameworks Application Servers Open Source This Site Careers Other Pie Elite all forums
this forum made possible by our volunteer staff, including ...
Marshals:
  • Devaka Cooray
  • Campbell Ritchie
  • Tim Cooke
  • Ron McLeod
  • Paul Clapham
Sheriffs:
  • Liutauras Vilda
  • Jeanne Boyarsky
  • paul wheaton
Saloon Keepers:
  • Tim Holloway
Bartenders:

Throwing Exceptions

 
Ranch Hand
Posts: 100
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator


This code give a compile time error.
Child.java:8: unreported exception java.sql.SQLException; must be caught or decl
ared to be thrown
doStuff();

But If i do



What i want to know is when i have caught the Exception in doStuff() method which is the method that throws it then why do i have to declare it in someMethod() which calls doStuff() method.

Thanks
 
Greenhorn
Posts: 24
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
When you declare a "throws Exception", you force the caller of your method to: 1) catch your Exception OR 2) throw it furter (like your second code block)..

Greetz
 
Angela lewis
Ranch Hand
Posts: 100
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Thanks for replying.
What if the caller does both i.e, catch it as well as throw it further.
 
Geoffrey Vlassaks
Greenhorn
Posts: 24
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Than the same rules apply to the caller of the second method. However, it's possible that the declared exception is never thrown. But you still have to catch it, or throw it further...

Greetz
 
Angela lewis
Ranch Hand
Posts: 100
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator


The method someMethod() needs to either throw the exception or catch it.
But as in this code it does both.
Does this have any implication or is it same as doing one of the two?
 
Greenhorn
Posts: 18
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Doing both doesn't make any sense.You should either catch it or throw it.
 
Geoffrey Vlassaks
Greenhorn
Posts: 24
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator


In this code, the exceptions are thrown upward. The caller of "anotherMethod()" still has to catch the SQLException, or throw it further. If you don't declare the throws SQLException in "anotherMethod()", you have to catch the exception from "someMethod()"

Hope this helps a bit more..

Greetz
 
Always! Wait. Never. Shut up. Look at this tiny ad.
Paul Wheaton's 16th Kickstarter: Gardening playing cards for gardeners and homesteaders
https://coderanch.com/t/889615/Paul-Wheaton-Kickstarter-Gardening-playing
reply
    Bookmark Topic Watch Topic
  • New Topic