`
phinecos
  • 浏览: 341170 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

《java编程思想》读书笔记(13)

 
阅读更多

子类覆写父类的方法时,如果父类的方法进行了异常声明了,子类可以不理会这个声明,不需要进行异常声明。

packagecom.vitamin.Console;
importjava.lang.Throwable;


publicclassexceptionTest
{

publicstaticvoidmain(String[]args)throwsException
{
//TODOAuto-generatedmethodstub]
derived=newderive();
d.process();

}



}

classmyExceptionextendsException
{
myException()
{
super();
}

}

classbase
{
publicbase()
{

}

publicvoidprocess()throwsmyException
{
System.out.println(
"process()inbaseclass");
thrownewmyException();
}

}


classderiveextendsbase
{
publicderive()
{
super();
}

publicvoidprocess()
{
System.out.println(
"process()inderivedclass");

}


}

2.如果你先用父类catch掉了异常,那子类异常的catch块就不能到达,编译器就会报错:

packagecom.vitamin.Console;
importjava.lang.Throwable;


publicclassexceptionTest
{

publicstaticvoidmain(String[]args)throwsException
{
//TODOAuto-generatedmethodstub]
try
{
thrownewexception2();
}

catch(myExceptionex)
{
System.err.println(ex.getMessage().toString());
}

catch(exception2ex)
{
System.err.println(ex.getMessage().toString());
}

}



}

classmyExceptionextendsException
{
myException()
{
super();
}

}

classexception2extendsmyException
{
publicexception2()
{
super();
}

}

这种用法编译器是会报错的,应该用防止父类屏蔽掉子类异常处理。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics