带有 NumberFormatException 的捕获块被忽略了吗?
Catch-block with NumberFormatException is being ignored?
我试图在用户输入无效或什么都不输入时发送错误 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);
}
}
}
很抱歉,代码可能不符合代码约定,但我删除了所有不重要的部分,因此,我可能制作了代码 'uglier'。
将 try catch 块放入动作侦听器中。动作侦听器是不同的 class 因此您当前的 try catch 块不会捕获其中的异常。
我试图在用户输入无效或什么都不输入时发送错误 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);
}
}
}
很抱歉,代码可能不符合代码约定,但我删除了所有不重要的部分,因此,我可能制作了代码 'uglier'。
将 try catch 块放入动作侦听器中。动作侦听器是不同的 class 因此您当前的 try catch 块不会捕获其中的异常。