Java 尝试使用joptionpane捕获错误

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());

netbeans在异常e中表示未使用变量e。我似乎不明白这个问题

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:。消息框没有为我关闭。请提供帮助…尝试了相同的操作。