Не могу поймать исключение

86
08 октября 2021, 08:40

Всем привет, никак не получается создать условие ,чтобы отловить ошибку ввода в строку букв вместо цифр.

вот часть кода :

     String as = JOptionPane.showInputDialog(null,"                     Введите число");
     try {
     if(as == null || as.equals(""))throw new NullException();
     int vc = Integer.parseInt(as);
     if(as.equals("dfg"))throw new NoNumberException();  //не работает  
        JOptionPane.showMessageDialog(null,"                 Спасибо");  
     }
     catch (NullException a){
         JOptionPane.showMessageDialog(null,a);   
     }
     catch (NoNumberException a) {
        JOptionPane.showMessageDialog(null,a);
     }
     finally {
        JOptionPane.showMessageDialog(null,"   Программа  закончена");   
     }
Answer 1
if (!as.matches("\\d+")) throw new NoNumberException();  //работает

!as.matches("\\d+") вернет вам true, если пользовательский ввод содержит любые не числовые символы.

Только эту проверку нужно делать перед Integer.parseInt(as)

READ ALSO
О взаимосвязи hashCode() и equals(). Правильно ли я ее понимаю?

О взаимосвязи hashCode() и equals(). Правильно ли я ее понимаю?

hashCode возвращает целочисленное int, которое характеризует объектГрубо говоря, если у объекта есть два целочисленных поля, то мы должны как-то...

97
Изменение цвета иконки в Toolbar

Изменение цвета иконки в Toolbar

Есть Activity и несколько Fragment которые открываются внутри этого активитиToolbar находится в активити

108
java.io.StreamCorruptedException: invalid stream header: AC3F0005

java.io.StreamCorruptedException: invalid stream header: AC3F0005

я сериализую объект KeyEvent, превращаю его в строку, а затем сохраняю это значение в бд Oracle, затем читаю строку из бд и пытаюсь десериализовать...

103
Расширенный алгоритм Евклида

Расширенный алгоритм Евклида

Доброго времени суток

104