【发布时间】:2021-12-06 19:59:54
【问题描述】:
我有一个学校作业的代码,因为它不符合我的教授标准,所以我失败了。即使只有两个框中的一个输入,我也无法弄清楚如何让程序运行。如果一个框留空,它会转到捕获并显示错误消息“请输入有效数字”。我可能正在考虑为用户输入创建一个 arrayList 并将其添加在一起?
这是盒子的sn-p代码:
JButton creditButton = new JButton("CREDIT");
creditButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
double num1=0, num2=0, balance=0;
try {
num1 = Double.parseDouble(creditInput.getText());
num2 = Double.parseDouble(debitInput.getText());
balance = num1 - num2;
totalBalance.setText("$" + Double.toString(balance));
}catch(Exception e2) {
JOptionPane.showMessageDialog(null, "Please Enter A Valid Number");
}
}
});
JButton debitButton = new JButton("DEBIT");
debitButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
double num1=6, num2=6, balance=0;
try {
num1 = Double.parseDouble(creditInput.getText());
num2 = Double.parseDouble(debitInput.getText());
balance = num1 - num2;
totalBalance.setText("$" + Double.toString(balance));
}catch(Exception e2) {
JOptionPane.showMessageDialog(null, "Please Enter A Valid Number");
}
}
});
JButton clearButton = new JButton("CLEAR");
clearButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
creditInput.setText("");
debitInput.setText("");
}
});
【问题讨论】:
-
正如所写的,异常处理过于宽泛,因为它同时涵盖了两个输入。隔离每个输入。如果有解析异常,您需要知道为什么有异常,这只能通过查看输入并查看字符串表示是否为有效数字来完成,例如,如果需要,空字符串可以是
0,但abc仍然应该是一个错误。 -
(我认为空输入会是一个错误,但这既不是这里也不是那里。)
-
@DaveNewton 好的。所以我很抱歉,因为我对此很陌生,但我认为您所说的是我需要知道存在异常,因为如果有人尝试输入有效数字以外的内容,则需要弹出错误。包罗万象:
catch(Exception e2)还不够好,因为如果那里什么都没有,它就不会运行。所以我也尝试了ArithmeticException e,但这给了我编码中的实际错误。