Catch-блок с NumberFormatException игнорируется? - PullRequest
0 голосов
/ 25 июня 2018

Я пытаюсь отправить сообщение об ошибке JOptionPane, когда пользователь вводит недействительный или вообще ничего.Я пытаюсь сделать это с помощью блока try / catch и NumberFormatException, но мне кажется, что этот блок игнорируется, но этого не может быть.

import javax.swing.*;

import java.awt.Color;
import java.awt.Font;
import java.awt.event.ActionListener;
import java.lang.NumberFormatException;

public abstract class Input extends JFrame implements ActionListener { 

     public static void main(String[] args) throws NumberFormatException {

    //implementation of the GUI with JTexFields etc.

    try {
        button.addActionListener(e -> {
            Label.setText(" ");

            int Num1 = 5;

            int Num2 = Integer.valueOf(Field1.getText());

            if (Num1 <= 0) {
                //something;
            }

            //calculate with input 
       });
   }
    catch (NumberFormatException e) {
        JOptionPane.showMessageDialog(null,
                "Please watch out for your input.",
                "Input error",                        
        JOptionPane.ERROR_MESSAGE);
    }
}
}   

Извините, чтокод, вероятно, не соответствует соглашениям о коде, но я вырезал все неважные части, и поэтому я, возможно, сделал код «уродливее».

1 Ответ

0 голосов
/ 25 июня 2018

Поместите блок try catch в слушатель действия.Слушатель действий - это другой класс, поэтому ваш текущий блок try catch не будет ловить исключения в нем.

...