String months[] = { null , "Jan" , "Feb" , "Mar" , "Apr",
"May", "Jun", "Jul", "Aug", "Sep", "Oct",
"Nov", "Dec" };
try
{
System.out.print("Enter month <1 for Jan - 12 for Dec>: ");
m = input.nextInt();
MonthData();
}
catch(Exception e)
{
System.out.println("Invalid month!"); //error message to inform user of wrong input
}
break;
static void MonthData()
{
System.out.println("----------------------------------------");
System.out.println(months[m]+" Expenditure <max 10 items>");
try
{
for(int i=0; i<10; i++)
{
System.out.print("Enter item "+(i+1)+" <Press ENTER to exit> : ");
monthItems[m][i] = input.next();
if (monthItems[m][i].length() == 0)
{
return;
}
else
{
System.out.print("Enter amount : $");
amount[m][i] = input.nextDouble();
System.out.println("");
}
}
}
catch(Exception e)
{
System.out.println("");
}
}
大家好
我想说这段代码有点帮助。但我的问题是为什么12月的函数不能正常执行。
例如,当我点击第12个月时,它只是跳过该功能并结束程序。
提前致谢。
答案 0 :(得分:12)
我不知道为什么,但以下内容:
catch(Exception e){
System.out.println("");
}
不会打印您的例外'e',因此您无法清楚地知道发生了什么。
至少:
e.printStackTrace();
很可能会为您提供更多有关正在发生的事情的信息,并且通常是良好的做法(您可以使用日志框架等,但原则保持不变)。
答案 1 :(得分:2)
也许是因为你已经声明了一个大小为12的数组并且使用索引12访问它的最后一个元素但是它应该是11,因为你从0开始计数... 12月=月11