为什么第12个月没有正确执行?

0 java

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("");
  }   
}
Run Code Online (Sandbox Code Playgroud)

嗨,大家好

只是想说这段代码有点帮助.但我的问题是为什么12月的函数不能正常执行.

例如,当我点击第12个月时,它只是跳过该功能并结束程序.

提前致谢.

Bri*_*new 12

我不知道为什么,但以下内容:

catch(Exception e){
        System.out.println("");
    } 
Run Code Online (Sandbox Code Playgroud)

不会打印你的例外'e',因此你不会清楚地知道发生了什么.

至少:

e.printStackTrace();
Run Code Online (Sandbox Code Playgroud)

很可能会给你更多关于发生了什么的信息,并且通常是好的做法(你可以使用日志框架等但原则保持不变).