posted 11 years ago
/*
compiling code below was successful, i had thought the method overriding by B.doo() would fail without the declaration "throws Exception".
What's the overriding rule regarding it?
Thanks!
*/
class A {
void doo() throws Exception {}
}
class B extends A {
void doo() {}
}
compiling code below was successful, i had thought the method overriding by B.doo() would fail without the declaration "throws Exception".
What's the overriding rule regarding it?
Thanks!
*/
class A {
void doo() throws Exception {}
}
class B extends A {
void doo() {}
}
Hard work rewards
posted 11 years ago
Hi Bob,
When you override a method, make sure for 2 things regarding exceptions, is that your overriden method cannot throw broader checked exception and if it dosn't throw any checked exceptions also it works. It can throw any run time exceptions.
When you override a method, make sure for 2 things regarding exceptions, is that your overriden method cannot throw broader checked exception and if it dosn't throw any checked exceptions also it works. It can throw any run time exceptions.
SCJP 1.4, SCWCD 1.4 - Hints for you, Certified Scrum Master
Did a rm -R / to find out that I lost my entire Linux installation!
Bob CHOI
Ranch Hand
Posts: 127
posted 11 years ago
Try the following cod eyou will get error
class A {
void doo() throws Exception {System.out.println("sys");}
}
public class B extends A {
void doo() {System.out.println("sys1");}
public static void main(String s[]) {
A a=new Test();
a.doo();//unreported exception error
Test t=new Test();
t.doo();
}
}
ie Overriding method not declared the exception, declared by the super class
class A {
void doo() throws Exception {System.out.println("sys");}
}
public class B extends A {
void doo() {System.out.println("sys1");}
public static void main(String s[]) {
A a=new Test();
a.doo();//unreported exception error
Test t=new Test();
t.doo();
}
}
ie Overriding method not declared the exception, declared by the super class
Suguna Gollapally
Ranch Hand
Posts: 37
posted 11 years ago
Hi Suguna,
Consider the code below,
The above works fine and I'n not saying void test() throws Exception in my subclass. It works just fine. The point is if any method says to the world that it might throw an exception, then callers of that method should make arrangements to handle any exceptional condition that might occur. It has got nothing to do with overriding. Hope you understood the concept.
Consider the code below,
The above works fine and I'n not saying void test() throws Exception in my subclass. It works just fine. The point is if any method says to the world that it might throw an exception, then callers of that method should make arrangements to handle any exceptional condition that might occur. It has got nothing to do with overriding. Hope you understood the concept.
SCJP 1.4, SCWCD 1.4 - Hints for you, Certified Scrum Master
Did a rm -R / to find out that I lost my entire Linux installation!
posted 11 years ago
Hai Jyothi,
Thanks for your deatiled answer... so you say compiler wont check whether the overriding method throws exception or not,but when we call the overridden method,programmer should handle it as it throws checked exception other wise it would be an unreported exception and compiler spit an error...am rite?
Harish
Thanks for your deatiled answer... so you say compiler wont check whether the overriding method throws exception or not,but when we call the overridden method,programmer should handle it as it throws checked exception other wise it would be an unreported exception and compiler spit an error...am rite?
Harish
Harish Paravasthu
