使用算术异常构造函数处理抛出



问题:编写一个名为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!");

最新更新