java - 在catch block 中使用return?

标签 java swing

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

我在以下情况下处理过3个异常

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

我在 catch block 中使用了 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;
}

最佳答案

我想说,返回语句完全取决于个人。有些人不喜欢它们,有些人喜欢。

就我个人而言,我喜欢它们,并且我发现它可以使代码更易于阅读。然而,有些人却有不同的感觉。您的替代方法是检查条件,将结果输出为 boolean 值,并且仅在 boolean 值与您期望的匹配时才运行代码。

此外,抛出异常会导致 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;
}

关于java - 在catch block 中使用return?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52550692/

相关文章:

java - 读取14位和16位图像

java - 摆脱字符串中的标点符号

java.lang.VerifyError : class com. intellij.junit4.JUnit4TestRunnerUtil$5 覆盖 final方法 getRunner.()Lorg/junit/runner/Runner;

java - 自定义JComboBox : "infinite loops event" when LAF is system LAF

java - 当我调整大小时,JPanel 大小问题

java - 如何在打开新框架时关闭主框架

java - groovy中的invokeMethod是在哪里实现的?

java - 图形用户界面 : Highlight the Path It Takes for A Maze?

java - 将 JTextField/JTextArea 堆叠在 ImageIcon 之上

java:广度优先遍历迷宫回溯