问题:编写一个名为addTwoPositive
的方法,它接受两个int形参,如果其中一个值不为正,抛出一个ArithmeticException
,将字符串"Non-positive integers sent!"传递给异常的构造函数。如果两个值都是正数,则返回它们的和。
我对如何通过ArithmeticException
构造函数处理此异常感到困惑。下面是我的代码:
package IfnotPos;
public class IfNotPositive extends ArithmeticException{
public static void main(String[] args) throws ArithmeticException{
IfNotPositive pos = new IfNotPositive();
System.out.println(pos.addTwoPositive(-3,2));
}
public int addTwoPositive(int plus, int plus1) throws ArithmeticException{
if(plus < 0 || plus1 < 0){
throw new ArithmeticException("Non-positive integers sent!");
}
else{
return plus + plus1;
}
}
public ArithmeticException(String string) {
return string;
}
}
我得到一个错误"方法的返回类型缺失",如果我将其更改为字符串或其他任何东西,它显然将不再是构造函数。任何帮助处理这个异常将是非常感激的。
首先,您不需要扩展ArithmeticException类。您不是在创建一个自定义异常,而是编写一个程序,在不满足条件时抛出ArithmeticException(注意它驻留在java.lang中)。
你的代码的问题是,你所定义的构造函数是永远不会存在的,并且是不正确的,因此编译问题。
public ArithmeticException(String string) {
return string;
}
我不明白为什么你要在你的代码中创建算术异常的构造函数?
public ArithmeticException(String string) {
return string;
}
不能这样写构造函数。这是抱怨上述方法的语法异常。这个构造函数是不必要的。删除这个,您的代码将工作完美。你应该看到下面的异常运行你的程序…
线程"main"异常java.lang. arithmelceexception: Non-positive整数发送!在com.code.samples.IfNotPositive.addTwoPositive (IfNotPositive.java: 14)com.code.samples.IfNotPositive.main (IfNotPositive.java: 8)
从为你的类提供构造函数
构造函数声明类似于方法声明——不同之处在于它们使用类名并且没有返回类型。
我得到一个错误"返回类型的方法是缺失的"
你得到这个错误是因为public ArithmeticException(String string)
行在你的代码。
您不能在另一个类中添加任何其他类的构造函数,因此Java将public ArithmeticException(String string)
视为函数而不是构造函数。
对于方法你需要有返回类型mendetry
你不需要扩展算术异常类。参见下面的代码:
public class IfNotPositive{
public static void main(String[] args) throws ArithmeticException{
IfNotPositive pos = new IfNotPositive();
System.out.println(pos.addTwoPositive(-3,2));
}
public int addTwoPositive(int plus, int plus1) throws ArithmeticException{
if(plus < 0 || plus1 < 0){
throw new ArithmeticException("Non-positive integers sent!");
}
else{
return plus + plus1;
}
}
}
Q:抛出一个算术异常,传递字符串"非正整数发送!"
表示抛出ArithmeticException
,并附带详细消息"Non-positive integers sent!"
所以你可以使用公共的arithmelicexception (String s)构造函数。
用指定的详细消息构造一个arithmelceexception。
,
throw new ArithmeticException("Non-positive integers sent!");