超出范围错误而不是自定义消息

时间:2015-09-20 05:49:46

标签: java

我使用if语句在args.length == 0时向用户提供自定义错误消息。但是,当没有传递参数时,我得到的是一个超出范围的错误,而不是打印我的自定义消息。

String w1 = args[0];
int n1 = Integer.parseInt(args[1]);
  for(int x = 0; x < n1; x++) {
    System.out.println(w1);
  }

String w2 = args[2];
int n2 = Integer.parseInt(args[3]);
  for(int b = 0; b < n2; b++){
    System.out.println(w2);
  }

String w3 = args[4];
int n3 = Integer.parseInt(args[5]);
  for(int c = 0; c < n3; c++) {
    System.out.println(w3);
  }

  if(args.length == 0){
    System.out.println("Error: No user input.");
    return;
  }

  }

1 个答案:

答案 0 :(得分:0)

显示代码后修改。

Java: Check if command line arguments are null

我建议总是检查if((args == null)||(args.length == 0)),或者if((args!= null)&amp;&amp;(args.length&gt; 0))取决于根据你的需要。

&#13;
&#13;
if((args == null) || (args.length == 0))
{
  System.out.println("Error: No user input.");
  return;
}

if (args.length == 1) {
  String w1 = args[0];
  int n1 = Integer.parseInt(args[1]);
  for(int x = 0; x < n1; x++) {
    System.out.println(w1);
  }
}

if (args.length == 3) {
  String w2 = args[2];
  int n2 = Integer.parseInt(args[3]);
  for(int b = 0; b < n2; b++){
    System.out.println(w2);
  }
}

if (args.length == 5) {
  String w3 = args[4];
  int n3 = Integer.parseInt(args[5]);
  for(int c = 0; c < n3; c++) {
    System.out.println(w3);
  }
}
 
&#13;
&#13;
&#13;