どぅーちゅいむーにー

これ、Twitterでよくね?という日々の記録かも

引数チェックとArrayIndexOutOfBoundsException

放置中のJava入門ですが。

mainメソッドで引数チェックを行うにあたり、ArrayIndexOutOfBoundsExceptionが発生したらエラーにするか、ちゃんと length でチェックするか。

例えば、引数2つ必須で、3つ目が任意でデフォルト1のとき。

  public static void main(String[] args) {
    int num = 1;
    try {
      num = Integer.parseInt(args[2]);
    } catch (ArrayIndexOutOfBoundsException ex) {
      num = 1;
    } catch (NumberFormatException ex) {
      System.err.println("引数が不正です");
      System.exit(1);
    }
    ...
  }

としても、問題なく動くことは動きますが、個人的には気持ち悪いので

  public static void main(String[] args) {
    int num = 1;
    if (args.length > 2) {
      try {
        num = Integer.parseInt(args[2]);
      } catch (NumberFormatException ex) {
        System.err.println("引数が不正です");
        System.exit(1);
      }
    }
    ...
  }

のほうを好む。かといって、前者はダメ!という根拠もなく・・・


これは好みの問題なんですかねー?という素朴な疑問。