Java 使用ArithmaticException构造函数处理抛出
问题:编写一个名为Java 使用ArithmaticException构造函数处理抛出,java,exception,constructor,throw,Java,Exception,Constructor,Throw,问题:编写一个名为addTwoPositive的方法,该方法接受两个int参数,如果其中一个值不是正数,则抛出一个算术异常,将字符串“Non-positive integers sent!”传递给异常的构造函数。如果两个值都为正值,则返回它们的总和 对于如何通过arithmetricexception构造函数处理此异常,我感到困惑。这是我的密码: package IfnotPos; public class IfNotPositive extends ArithmeticException{
addTwoPositive
的方法,该方法接受两个int参数,如果其中一个值不是正数,则抛出一个算术异常
,将字符串“Non-positive integers sent!”传递给异常的构造函数。如果两个值都为正值,则返回它们的总和
对于如何通过arithmetricexception
构造函数处理此异常,我感到困惑。这是我的密码:
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;
}
}
包IfnotPos;
公共类IfNotPositive扩展算术异常{
公共静态void main(字符串[]args)引发算术异常{
IfNotPositive=新的IfNotPositive();
系统输出打印LN(位置addTwoPositive(-3,2));
}
public int addTwoPositive(int plus,int plus1)抛出算术异常{
如果(加上<0 | |加上1<0){
抛出新的算术异常(“发送非正整数!”);
}
否则{
返回加+加1;
}
}
公共算术异常(字符串){
返回字符串;
}
}
我得到一个错误“方法的返回类型丢失”,如果我将其更改为字符串或其他任何内容,它显然将不再是构造函数。如果您能帮助处理此异常,我们将不胜感激 首先,您不需要扩展算术异常类。您不是在创建自定义异常,而是在不满足条件的情况下编写一个程序来抛出算术异常(注意,它位于java.lang中) 代码的问题是,您定义的构造函数从来就不存在,而且是不正确的,因此存在编译问题
public ArithmeticException(String string) {
return string;
}
只要删除此构造函数,您就可以开始了。从
构造函数声明与方法声明类似,只是它们使用类的名称,并且没有返回类型
我得到一个错误“方法的返回类型丢失”
出现此错误是因为代码中的公共算术异常(字符串)
行
您不能在另一个类中添加任何其他类的构造函数,因此Java将公共算术异常(String String)
视为函数而不是构造函数
正如你们所知,对于这个方法,你们需要有返回类型的修补
同学们,你们不必扩展。见以下代码:
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;
}
}
}
我不明白为什么要在代码中为算术异常创建构造函数
公共算术异常(字符串){
返回字符串;
}
你不会写这样的构造函数。这是抱怨上述方法的语法异常。这个构造函数是不必要的。删除此选项,您的代码将完美运行。您应该看到下面运行程序时出现异常
线程“main”java.lang.arithmetricException中的异常:非正
整数发送!在
com.code.samples.IfNotPositive.addTwoPositive(IfNotPositive.java:14)
位于com.code.samples.IfNotPositive.main(IfNotPositive.java:8)
谢谢大家。所以现在我不明白他们所说的“将字符串‘非正整数发送!’传递给异常的构造函数”是什么意思。所以现在我不明白他们所说的“将字符串‘非正整数发送!’传递给异常的构造函数”是什么意思。所以现在我不明白他们所说的是什么意思传递字符串“已发送非正整数!”“@userb看到上面的答案了。所以现在我不明白他们所说的“传递字符串”是什么意思了对于异常的构造函数,“它只是告诉要做什么的不同方法——您也可以这样理解它——“抛出一个算术异常,消息‘发送的非正整数!'"
throw new ArithmeticException("Non-positive integers sent!");