JAVA自定义异常时的问题 无法将类Exception中的构造器Exception应用到给定的类型

代码是这样的,编译不通过classFuShuExceptionextendsException{privateStringmsg;FuShuException(Strin... 代码是这样的,编译不通过
class FuShuException extends Exception
{
private String msg;
FuShuException(String msg)
{
this.msg = msg;
}
public String getMessage()
{
return msg;
}
}
class Demo
{
int div(int a,int b)throws FuShuException
{
if(b<0)
throw new FuShuException("出现了除数是负数的情况");
return a/b;
}
}
class Exception3
{
public static void main(String[] args)
{
Demo d = new Demo();
try
{
int x = d.div(4,1);
System.out.println("x="+x);
}
catch (FuShuException e)
{
System.out.println(e.toString());
System.out.prinlln("除数出现负数了");
}
System.out.println("over");
}
}
错误提示是说 无法将类Exception中的构造器Exception应用到给定的类型,怎么回事啊?
展开
 我来答
wkkeckdojh2
2013-02-01
知道答主
回答量:42
采纳率:0%
帮助的人:28.6万
展开全部

问题可能出在if代码体

 

其中:

int div(int a,int b)throws FuShuException

{

if(b<0)

throw new FuShuException("出现了除数是负数的情况");

return a/b;

}

中的if方法代码修改为:

int div(int a,int b)throws FuShuException

{

if(b<0) {

throw new FuShuException("出现了除数是负数的情况");

} else {

return a/b;

}

这样修改以后试试。

llei32wang
2013-02-01 · TA获得超过2736个赞
知道大有可为答主
回答量:1478
采纳率:60%
帮助的人:1403万
展开全部
Exception类实例化需要一个参数字符串的构造方法,你继承异常类后没有缺少了Exception类的构造方法。加一句super(msg);在FuShuException的构造方法里就行了。如
class FuShuException extends Exception{
private String msg;
public FuShuException(String msg){
super(msg);
this.msg = msg;
}
public String getMessage(){
return msg;
}
}
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友3b4e952
2013-02-01 · TA获得超过472个赞
知道小有建树答主
回答量:409
采纳率:100%
帮助的人:326万
展开全部
我这复制的你的代码。完全没有问题的。

public class Exception3 {
public static void main(String[] args) {
Demo d = new Demo();
try {
int x = d.div(4, 1);
System.out.println("x=" + x);
} catch (fuShuException e) {
System.out.println(e.toString());
System.out.println("除数出现负数了");
}
System.out.println("over");
}
}

class fuShuException extends Exception {
private String msg;

fuShuException(String msg) {
this.msg = msg;
}

public String getMessage() {
return msg;
}
}

class Demo {
int div(int a, int b) throws fuShuException {
if (b < 0)
throw new fuShuException("出现了除数是负数的情况");
return a / b;
}
}
更多追问追答
追问
难道是我的编译器出问题了?前面的编译过一次是好的,后面就不行了
追答
不应该是编译器出问题的 。。你把我的代码贴到你的编译器里面执行。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
花柳和彦1W
2013-02-01
知道答主
回答量:36
采纳率:0%
帮助的人:11.1万
展开全部
必需写个无参的构造函数
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
湛蓝微澜
2013-02-02 · TA获得超过2967个赞
知道大有可为答主
回答量:5407
采纳率:0%
帮助的人:1867万
展开全部
只有与参数
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式