• Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

Overriding and checked Exceptions - Basic Doubt

 
Jennifer Wallace
Ranch Hand
Posts: 102
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
In answering the previous post on overriding, I got into this doubt. I am not able to reason it . Cud somebody help?
An Overriding method cannot throw any more Checked Exception than the overriden method.
My Question is WHY
I was trying to reason saying that when the object reference of the parent class finds a child object and if there is a overriden method in it which throws more checked Exceptions ...
... then I am lost!!!
I say.. so what ? It is after all an extended functionality ... I am not cutting off any of the parent's functionality .... !!
Where am I going wrong ?
 
Bhushan Jawle
Ranch Hand
Posts: 252
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hi Jennifer,
The reason that an overriding method is not allowed throw any more rather different checked expections than the function it is overriding because in a situation where client code wants to treat a hierarchy of objects polymorphically (access methods in all of them as base class ) the client has no way of determining that there is an overidden function in some class in hierarchy which throws some exception which it does not expect to be thrown.
Consider the following code:
try
{
for(int i = 0; i < someArray.length; i ++)
{
someArray[i].someBaseClassOverridenMethod();
}
}
catch(ExceptionThrowInBaseClassMethod e){}
where someArray consists of objects of classes derived from same base class. Had it been allowed to add more exceptions, it would make writing such a code impossible.
Regards,
Bhushan
 
Jennifer Wallace
Ranch Hand
Posts: 102
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Thanks Bhushan ! that settles it!
 
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic