从用户那里获取偶数并在数字为奇数时给出异常错误

taking even number from user and giving exception error if number is odd

我是一名 java 学生,我正在编写一个带有异常处理的 java 程序。在这个程序中,我正在尝试编写一个程序,从用户那里获取 5 个偶数,如果用户输入奇数,则显示该数字为奇数的异常。我在此程序中使用自定义异常 "oddexception"。

现在让我们谈谈这个问题。所以我有一个问题,这个程序没有编译。它显示下图中提到的错误。

这个问题的答案对你来说可能很小而且很愚蠢,但我是 java 的初学者,所以这个答案对我来说真的很重要。请帮助我。

请帮我找到解决办法。解决方案

import java.lang.Exception;
class oddexception extends Exception
{
    oddexception(String message, int a)
    {   
        System.out.println(message);
        System.out.println("Invalid Number is/are "+a);
    }
}
class program4
{
    public static void main(String args[])
    {
        Integer n[] = new Integer[5];
        int j=0;
        for(int i=0; i<5; i++)
        {
            try
            {
                n[i] = Integer.valueOf(args[i]);
                if(n[i]%2!=0)
                {
                    j++;
                    throw new oddexception("Number is odd "+n[i]);
                }
            }
            catch(oddexception e)
            {
                System.out.println("Caught my exception");
            }
        }
        System.out.println("Invalid numbers are : "+j);
    }
}   

您的 oddexception 构造函数有两个参数,因此

throw new oddexception("Number is odd "+n[i]);

你应该写

throw new oddexception("Number is odd ",n[i]);

从错误消息中可以清楚地看出,异常的构造函数需要一个字符串和一个整数 (oddexception(String message, int a))。你只是传递一个字符串。

throw new oddexception("Number is odd "+n[i]); //results to String

所以改变一下你的代码

  throw new oddexception("Number is odd " , n[i]);

首先,我想请你遵循 Java coding convention 并以大写字符开头你的 ClassNames 然后遵循驼峰式,通过遵循这些约定,你的代码将变得更具可读性和可以理解。

关于您的问题,您在构造函数中接受两个参数 oddexception(String message, int a),一个 String 和一个 int

但是在调用它时你只传递了一个参数 "Number is odd "+n[i],因为 n[i] 将与 String 连接并成为 String.

所以你应该写 throw new oddexception("Number is odd ", n[i]);

而不是 throw new oddexception("Number is odd "+n[i]);