Java 尝试使用joptionpane捕获错误
netbeans在异常e中表示未使用变量e。我似乎不明白这个问题Java 尝试使用joptionpane捕获错误,java,Java,netbeans在异常e中表示未使用变量e。我似乎不明白这个问题 private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) { DecimalFormat z = new DecimalFormat("0.00"); double x = Double.parseDouble(fnum.getText());
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
DecimalFormat z = new DecimalFormat("0.00");
double x = Double.parseDouble(fnum.getText());
double y = Double.parseDouble(secondnum.getText());
try {
double f = x + y;
String number = z.format(f);
answer.setText("" + number);
} catch(Exception e ) {
JOptionPane.showMessageDialog(null, "please input a valid number");
}
}
警告(可以忽略)告诉您在catch块中声明的变量e
未被使用。我知道,使用IntelliJ IDEA,您可以通过将e
的名称更改为忽略的来删除警告。我不确定NetBeans是否有类似的功能
然而,您的try块是毫无意义的。它应该围绕您的Double.parseDouble()
调用,因为如果用户的输入不是可以解释为数字的东西,这些调用就会失败。try块中唯一可能引发异常的方法是z.format(f)
,并且只有z
的舍入模式设置为RoundingMode。不必要的
,默认情况下不是这样
试试这样的
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
DecimalFormat z = new DecimalFormat("0.00");
try {
double x = Double.parseDouble(fnum.getText());
double y = Double.parseDouble(secondnum.getText());
double f = x + y;
String number = z.format(f);
answer.setText("" + number);
} catch(NumberFormatException e) {
JOptionPane.showMessageDialog(null, "please input a valid number");
}
}
编辑:正如OP上的评论所指出的,通常不建议捕获异常,因此更新以捕获更具体的NumberFormatException。没错-不使用变量e。
要解决此问题(实际上是警告),您可以打印此异常
例如:
catch(Exception e){
System.out.println(e);
JOptionPane.showMessageDialog(null, "please input a valid number");}
那只是一个警告。。。你可以忽略它。您的代码仍将编译并运行。您正在捕获异常,但未使用它。通常情况下,当您创建一个对象而不在任何地方使用时,IDE会发出警告消息。如果您担心警告try-catch块不起作用,只记录异常就足够了。我该怎么办?Define:。消息框没有为我关闭。请提供帮助…尝试了相同的操作。