Если это - "метод set", или где-нибудь я заставляю участника использовать позже, я склонен использовать IllegalArgumentException.
, Если это - что-то, которое я собираюсь использовать (разыменовывают) прямо сейчас в методе, я бросаю NullPointerException заранее. Мне нравится это лучше, чем разрешение времени выполнения сделать это, потому что я могу обеспечить, полезное сообщение (кажется, что время выполнения могло сделать это также, но это - напыщенная речь в течение другого дня).
, Если я переопределяю метод, я использую то, что использует переопределенный метод.
Вы не должны использовать событие keypress
, но событие keyup
или keydown
, потому что keypress
событие предназначено для реальных (печатных) персонажей. keydown
обрабатывается на более низком уровне, поэтому он захватит все непечатаемые клавиши, такие как delete и enter .