尝试用joptionpane捕获错误

时间:2016-10-20 20:51:10

标签: java

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");
    }
}

2 个答案:

答案 0 :(得分:1)

警告(可以忽略)告诉您未使用您在catch块中声明的变量<fancy-button *ngIf="showButton"></fancy-button>。我知道使用IntelliJ IDEA,您可以通过将e的名称更改为e来删除警告。我不确定NetBeans是否有类似的功能。

但是,你的尝试块是没有意义的。它应该在你的ignored调用附近,因为如果来自用户的输入不是可以被解释为数字的那些,那么这些调用将会失败。 try块中唯一可能引发异常的方法是Double.parseDouble(),并且仅当z.format(f)将其舍入模式设置为z且默认情况下不是这样。

尝试更像这样的事情。

RoundingMode.UNNECESSARY

编辑:正如对OP的评论所指出的那样,通常不建议捕获异常,因此更新以捕获更具体的NumberFormatException。

答案 1 :(得分:0)

这是真的 - 不使用变量e。 要解决此问题(实际上是警告),您可以打印此异常。

示例:

catch(Exception e){
System.out.println(e);
JOptionPane.showMessageDialog(null, "please input a valid number");}