A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 曾振华 中级黑马   /  2013-10-12 17:18  /  1522 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 曾振华 于 2013-10-12 18:45 编辑

class FuShuException extends Exception
{
private int value;
//private String msg;
FuShuException(String msg)
{
  //this.msg = msg;
  super(msg);
  this.value = value;
}
public int getValue()
{
  return value;
}
//public String getMessage()
//{
  //return msg;
//}
}

class Demo
{
int div (int a ,int b)throws FuShuException
{
  if(b<0)
   throw new FuShuException("除数出现了负数-- /bu fushu",b);
  return  a/b;
}
}


class  ExceptionDemo
{
public static void main(String[] args)
{
  Demo de = new Demo();
  try
  {
   int x = de.div(4,-2);
   System.out.println("x="+x);
  }
  catch (FuShuException e)
  {
   System.out.println(e.toString());
   //System.out.println("出现负数了");
   System.out.println("错误的负数是"+e.getValue());
  }
  System.out.println("over");
}
}

自定义一个当除数为负数就是异常的程序,编译时出现了异常- -



这是什么情况啊?

评分

参与人数 1技术分 +1 收起 理由
周志龙 + 1

查看全部评分

7 个回复

倒序浏览
FuShuException(String msg)
throw new FuShuException("除数出现了负数-- /bu fushu",b);
问题出现在这,构造方法少一个参数int value,加上就好了!

评分

参与人数 1技术分 +1 收起 理由
周志龙 + 1

查看全部评分

回复 使用道具 举报
hello菜菜 发表于 2013-10-12 17:26
FuShuException(String msg)
throw new FuShuException("除数出现了负数-- /bu fushu",b);
问题出现在这, ...

private int value

这个好像定义过了吧
回复 使用道具 举报
本帖最后由 Jam-l 于 2013-10-12 17:34 编辑

原因是你的异常FuShuException类的构造函数参数是只有字符串类型的FuShuException(String msg),而你在抛出异常多带了整型参数,应该把throw new FuShuException("除数出现了负数-- /bu fushu",b),改为throw new FuShuException("除数出现了负数-- /bu fushu"); 或者把构造函数改为FuShuException(String msg,int value),就可以了。纯手打,自己经过调试了,请版主给给分 - -

评分

参与人数 1技术分 +1 收起 理由
周志龙 + 1

查看全部评分

回复 使用道具 举报
曾振华 发表于 2013-10-12 17:31
private int value

这个好像定义过了吧

这个是定义的类变量,另一个是参数变量(只在这个函数起作用),两者不一样!
回复 使用道具 举报
hello菜菜 发表于 2013-10-12 17:35
这个是定义的类变量,另一个是参数变量(只在这个函数起作用),两者不一样! ...

:L

确实漏了这个东西。。。

问你个小问题啊

你怎么上传图片的啊,我截图的时候图片很大的,为什么上传后这么小呢?有什么办法让图片上传后保证原来的像素,是哪里没设置好吗?谢谢了。
回复 使用道具 举报
曾振华 发表于 2013-10-12 17:44
确实漏了这个东西。。。

问你个小问题啊

你可以在高级模式里,添加附件,就OK了啊
回复 使用道具 举报
    FuShuException这个类的构造函数只有一个:FuShuException(String msg),它是一个参数的构造函数,只能创建一个参数的对象,而你在Demo中throw new FuShuException("除数出现了负数-- /bu fushu",b);这是调用了两个参数的构造函数,所以说会报错。将上述代码去掉参数“b”修改为:throw new FuShuException("除数出现了负数-- /bu fushu");就不会出现这个错误了。

评分

参与人数 1技术分 +1 收起 理由
周志龙 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马