使用catch块中的return?

时间:2018-09-28 07:46:31

标签: java swing

我是第一次使用swing API构建GPA计算器Java应用程序。这是我的第一个GUI应用程序。

在以下情况下,我处理了3个例外情况

  • 如果用户输入十进制值
  • 如果用户输入负值
  • 如果用户将文本字段留空。

我在catch块中使用了return关键字(尤其是在ArithmeticException情况下),因为即使在显示错误消息之后,程序仍在计算GPA(我不希望如此)。

尽管代码可以按我希望的那样正常运行,但是使用代码中显示的return是解决问题的正确/良好方法吗?

代码:

try{
    int temp;
    temp = Integer.parseInt(c1.getText());
    if(temp < 0){
        throw(new ArithmeticException());
    }
}
catch(NumberFormatException ex){
     JOptionPane.showMessageDialog(null,"please fill the fields with proper values.");
     return;
}
catch(ArithmeticException e){
     JOptionPane.showMessageDialog(null,"negative values not allowed");
     return;
}

2 个答案:

答案 0 :(得分:1)

如果在此之后没有其他代码:

try{
    int temp;
    temp = Integer.parseInt(c1.getText());
    if(temp < 0){
        throw(new ArithmeticException());
    }
}
catch(NumberFormatException ex){
     JOptionPane.showMessageDialog(null,"please fill the fields with proper values.");
     return;
}
catch(ArithmeticException e){
     JOptionPane.showMessageDialog(null,"negative values not allowed");
     return;
}

然后您可以删除return子句以使其更整洁,这完全没有必要。

答案 1 :(得分:1)

我会说return语句完全取决于个体。有些人不喜欢它们,有些人喜欢。

我个人喜欢它们,并且发现它可以使代码更易于阅读。但是,有些人则相反。您也可以选择检查条件,将结果输出到布尔值,并且仅在布尔值符合您的期望时才运行代码。

此外,抛出异常会导致Java做更多的工作,而不是直接进行检查。

这样会更清洁:

try{
    int temp;
    temp = Integer.parseInt(c1.getText());
    if(temp < 0){
     JOptionPane.showMessageDialog(null,"negative values not allowed");
     return;
    }
}
catch(NumberFormatException ex){
     JOptionPane.showMessageDialog(null,"please fill the fields with proper values.");
     return;
}