This week's book giveaway is in the Cloud/Virtualization forum.
We're giving away four copies of Kubernetes in Action and have Marko Luksa on-line!
See this thread for details.
Win a copy of Kubernetes in Action this week in the Cloud/Virtualization forum!
  • Post Reply Bookmark Topic Watch Topic
  • New Topic

try-catch versus throws exception  RSS feed

 
Ranch Hand
Posts: 95
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator

If you call a method that throws an exception the programmer must

1) wrap the call to the method in a try statement
and catch the exception OR
2) ensure the calling method throws the same Exception
as the method that is being called.


I have read the following theory with respect to Exceptions.


I need the following statement confirmed.

Proposition:
Whether a call needs to be
1) wrapped in a 'try-catch' block or
2) whether the enclosing method requires a throws clause
depends on the class of reference and not the class of the actual object.

Can someone confirm if the above proposition is true or false?
 
Sheriff
Posts: 11338
177
AngularJS Chrome Eclipse IDE Hibernate Java jQuery MySQL Database Spring Tomcat Server
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
A short code snippet will illustrate your question much better...
 
Ranch Hand
Posts: 201
1
Java Python
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator

Thomas Hauck wrote:Can someone confirm if the above proposition is true or false?



This seems to be about right. Remember it is only checked-exceptions that need to be caught or declared with a throws clause. Also if the method declares it in a throws clause each calling method all the way back to the main method must also declare it for the code to compile.

I think it is also okay for a super-class to catch the Exception. So, in other words the exact checked-exception thrown does not need to be caught or declared though catching or declaring the exact exception is a better coding practice from what I understand.

Remember checked exceptions are those that extend java.lang.Exception but do not extend java.lang.RuntimeException.

Also, I am fairly certain it is the reference the compiler will watch for and not the actual object type - since the object type is something that will be instantiated at run-time.

I would recommend writing a few small programs at your leisure to test this stuff out and it will make more sense to you.

Regards,

Ted
  • Post Reply Bookmark Topic Watch Topic
  • New Topic
Boost this thread!