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

时间:2018-02-26 14:43:29

标签: java exception exception-handling

我是一名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);
    }
}   

enter image description here

3 个答案:

答案 0 :(得分:4)

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

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

你应该写

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

答案 1 :(得分:3)

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

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

改变你的一些代码

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

答案 2 :(得分:1)

首先,我想请你跟随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]);