JOptionPane: нажатие кнопки отмены с нулевым вводом не выдает исключение NullPointerException, когда в операторе try-catch - PullRequest
0 голосов
/ 06 декабря 2018

Следующий код генерирует исключение NullPointerException, когда на JOptionPane нажата кнопка «отмена», а входная строка имеет значение null:

JOptionPane renamePane = new JOptionPane();
String s = renamePane.showInputDialog(null, "New layer name: ");

-> Следующий код не перехватывает исключение NullPointerException, если «отмена»нажата на JOptionPane, и input имеет значение null:

JOptionPane renamePane = new JOptionPane();
String s = "anything at all";
try {    s = renamePane.showInputDialog(null, "New layer name: ");   }
catch (NullPointerException npe)
{
     System.out.println("NP caught, returning");
     return;
}

-> Оператор print не выполняется, но s имеет значение null.Почему?

1 Ответ

0 голосов
/ 13 января 2019

Нет, где в JOptionPane.showInputDialog(Component, Object) Javadoc говорит, что NullPointerException выбрасывается при отмене пользователем без ввода текста.

Javadoc:
https://docs.oracle.com/javase/7/docs/api/javax/swing/JOptionPane.html#showInputDialog(java.awt.Component,%20java.lang.Object)

Возвращаемое значение null и бросание NullPointerException - это две разные вещи.

...