黑马程序员技术交流社区
标题:
这程序有意思,异常一直不抛,怎么解决?
[打印本页]
作者:
jonn
时间:
2013-1-16 18:10
标题:
这程序有意思,异常一直不抛,怎么解决?
interface A
{
public void show();
}
class AException extends Exception
{
AException(String msg){
super(msg);
}
}
class Fu
{
private void show(){
System.out.println("xxx");
}
}
class Zi extends Fu implements A
{
public void show() throws AException{
throw new AException("奇怪,异常一直不抛....");
}
}
class ExceptionDemo2
{
public static void main(String[] args)
{
try{
new Zi().show();
}catch(AException e){
System.out.println(e.getMessage());
}
}
}
复制代码
作者:
郭嘉
时间:
2013-1-16 20:04
刚才编译了一下,应该在interface a中的show函数指明要抛出AException,子类只能抛出比父类更少的异常,希望我的解答可以修正你程序中的错误
作者:
jonn
时间:
2013-1-16 20:09
谢谢楼上哥们的解答...
作者:
ying
时间:
2013-1-16 21:45
interface A
{
public void show() throws AException;
}
class AException extends Exception
{
AException(String msg)
{
super(msg);
}
}
class Fu
{
private void show()
{
}
}
class Zi extends Fu implements A
{
public void show() throws AException
{
throw new AException("奇怪,异常一直不抛....");
}
}
class ExceptionDemo2
{
public static void main(String[] args)
{
try
{
new Zi().show();
} catch (AException e)
{
System.out.println(e.getMessage());
}
}
}
复制代码
Zi 类实现了接口A,那么你就要实现接口A中的show方法,因为接口A中定义的接口没有跑出异常
所以你实现的方法也不能抛出异常啊,你要把抛出异常定义到接口的方法上就行啦!
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2