java: найти имя программы, проанализировать целочисленный аргумент

Простой тестовый пример для демонстрации двух моих проблем:

public class Numbers {

    private static void usage() {
        System.err.println("Usage: java " + getClass().getName() + " range");
        System.exit(1);
    }

    public static void main(String[] args) throws IOException {
        try {
            int range = Integer.parseInt(args[0]);
        } catch (Exception e) {
            usage();
        }
    }
}
  1. Невозможно вызвать getClass () из статического метода
  2. Если в команде не были предоставлены аргументы в строке, я получу сообщение ArrayIndexOutOfBoundsException вместо вывода usage () . Почему не ловит (Исключение e) его не ловит?
5
задан Alexander Farber 15 January 2016 в 12:04
поделиться