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