Написал свое решение, которое практически полностью аналогично "правильному", НО с
public static void main(String[] args) throws ParseException
Поменял на перехват в блоке try catch- все гуд
try {
    switch (args[0]) {
        case ("-c"):
            synchronized (allPeople) {
                for (int i = 1; i < args.length; i = i + 3) {
                    String name = args[i];
                    String sex = args[i + 1];
                    Date date = simpleDateFormat.parse(args[i + 2]);
                    Person person = sex.equals("м") ? Person.createMale(name, date) : Person.createFemale(name, date);
                    allPeople.add(person);
                    System.out.println(allPeople.indexOf(person));
                }
            }
            break;
        case ("-u"):
            synchronized (allPeople) {
                Date date;
                Person person = null;

                for (int i = 0; i < args.length - 1; i += 4) {
                    if (args[3 + i].contains("м")) {
                        date = simpleDateFormat.parse(args[4 + i]);
                        person = Person.createMale(args[2 + i], date);
                    } else {
                        date = simpleDateFormat.parse(args[4 + i]);
                        person = Person.createFemale(args[2 + i], date);
                    }
                    allPeople.set(Integer.parseInt(args[1 + i]), person);
                }
            }
            break;
        case ("-d"):
            synchronized (allPeople) {
                Date date;
                Person person = null;

                for (int i = 0; i < args.length - 1; i += 1) {
                    Person currentPerson = allPeople.get(Integer.parseInt(args[1 + i]));
                    currentPerson.setName(null);
                    currentPerson.setSex(null);
                    currentPerson.setBirthDate(null);
                }
            }
            break;
        case ("-i"):
            synchronized (allPeople) {
                Date date;
                Person person = null;

                for (int i = 0; i < args.length - 1; i += 1) {
                    person = allPeople.get(Integer.parseInt(args[1 + i]));
                    System.out.println(person.getName() + " " + (person.getSex() == Sex.MALE ? "м" : "ж") + " " + simpleDateFormat2.format(person.getBirthDate()));
                }
            }
            break;
    }
}catch (Exception e) {
    e.printStackTrace();
}
    }
}
Что не так?