Java 自定义异常

classfushuexceptionextendsException{privateintvalue;fushuexception(Stringmsg,intk){su... class fushuexception extends Exception
{
private int value;
fushuexception(String msg,int k)
{
super(msg);
this.value=k;
}
public int getValue()
{
return value;
}
}

class Demo extends Exception
{
public int div(int a,int b)throws fushuexception
{
if(b<0)
throw new fushuexception("???",b);
return a/b;
}
}
class a
{
public static void main(String[] args) {
Demo b=new Demo();
try
{
int x=b.div(4,-1);
System.out.println("x="+x);
}
catch(Exception e)
{
System.out.println(e.toString());
System.out.println(e.getValue());//错误

}

}
}
这个为什么getValue()这个函数没法用
展开
 我来答
519717047
2014-01-20 · TA获得超过141个赞
知道答主
回答量:155
采纳率:0%
帮助的人:82.1万
展开全部
{ int x=b.div(4,-1); System.out.println("x="+x); } catch(Exception e) {
改为
{ int x=b.div(4,-1); System.out.println("x="+x); } catch(fushuexception e) {
你catch中声明的是父类Exception 虽然你的子类fushuexception 有这个方法但是不能用父类调用,反过来是可以的。这个是不JAVA自定义异常的问题 而是JAVA的继承的问题。
匿名用户
2014-01-20
展开全部
因为 catch(Exception e) 你定义的异常类型是父类
所以看不到子类方法
解决方法 catch(fushuexception e) 确定告诉程序你要捕获的 为fushuexception 异常
或者 判断类型后强转
if (e instanceof fushuexception ) {
fushuexception err = (fushuexception)e ;
System.out.println(err.getValue());
}
令外:java 类名 首字母大写 应写成 FushuException 更好
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
猎人880803
2014-01-20
知道答主
回答量:40
采纳率:100%
帮助的人:8.5万
展开全部
捕获异常时不应该用exception,子类对象指向父类引用,只能调用父类方法,所以调用不到getValue()
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
跨越137
2014-01-20 · 超过22用户采纳过TA的回答
知道答主
回答量:98
采纳率:0%
帮助的人:59.7万
展开全部
“catch(Exception e)“你catch的是Exception 是父类,它里面没有getValue()这个方法,所有你只能catch(fushuexception e)才行
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
悠嘻猴在唱歌
2014-01-20 · TA获得超过542个赞
知道小有建树答主
回答量:185
采纳率:0%
帮助的人:94.5万
展开全部
getValue()是fushuexception类的方法,你这里是Exception类,Exception是fushuexception的父类,但Exception没有getValue()方法。你写出catch(fushuexception e) {} 那就能用getValue()方法了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2014-01-20
展开全部
这个只是一个自定义的类,演示异常使用,
System.out.println(e.getValue());//错误
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式