加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – 异常捕获但程序不断运行

发布时间:2020-12-14 05:14:58 所属栏目:Java 来源:网络整理
导读:我正在开展我的第一个 Java项目,实施一个名为“HeartRates”的课程,该课程取得用户的出生日期,并返回其最大和目标心率.主要测试程序中的一切工作除了一件事之外,我无法弄清楚在异常被捕获后如何停止打印其余的代码. 我不太确定代码中的异常被捕获的全部部分,
我正在开展我的第一个 Java项目,实施一个名为“HeartRates”的课程,该课程取得用户的出生日期,并返回其最大和目标心率.主要测试程序中的一切工作除了一件事之外,我无法弄清楚在异常被捕获后如何停止打印其余的代码.

我不太确定代码中的异常被捕获的全部部分,因为它是由教授给我们复制和粘贴的.如果任何人可以告诉我如何在发生错误后终止程序,或者打印一个自定义的错误信息,并阻止程序进一步执行,我将不胜感激.

这是代码:

import java.util.Scanner;
 import java.util.GregorianCalendar;

 import javax.swing.JOptionPane;

 public class HeartRatesTest {

public static void main(String[] args) {
    HeartRates test= new HeartRates();
    Scanner input = new Scanner( System.in );
    GregorianCalendar gc = new GregorianCalendar();
    gc.setLenient(false);

        JOptionPane.showMessageDialog(null,"Welcome to the Heart Rate Calculator");;
        test.setFirstName(JOptionPane.showInputDialog("Please enter your first name: n"));
        test.setLastName(JOptionPane.showInputDialog("Please enter your last name: n"));
        JOptionPane.showMessageDialog(null,"Now enter your date of birth in Month/Day/Year order (hit enter after each): n");

        try{
            String num1= JOptionPane.showInputDialog("Month: n");
            int m= Integer.parseInt(num1);
            test.setMonth(m);
                gc.set(GregorianCalendar.MONTH,test.getMonth());
            num1= JOptionPane.showInputDialog("Day: n");
            m= Integer.parseInt(num1);
            test.setDay(m);
                gc.set(GregorianCalendar.DATE,test.getDay());
            num1= JOptionPane.showInputDialog("Year: n");
            m= Integer.parseInt(num1);
            test.setYear(m);
                gc.set(GregorianCalendar.YEAR,test.getYear());

                gc.getTime(); // exception thrown here
        }

        catch (Exception e) {
            e.printStackTrace();
            }   



    String message="Information for "+test.getFirstName()+" "+test.getLastName()+": nn"+"DOB: "+ test.getMonth()+"/" +test.getDay()+ "/" 
            +test.getYear()+ "nAge: "+ test.getAge()+"nMax Heart Rate: "+test.getMaxHR()+" BPMnTarget Heart Rate(range): "+test.getTargetHRLow()
            +" - "+test.getTargetHRHigh()+" BPM";
    JOptionPane.showMessageDialog(null,message);
}

解决方法

不太确定为什么要在异常被捕获后终止应用程序 – 修正错误是不是更好?

在任何情况下,在你的catch块:

catch(Exception e) {
    e.printStackTrace(); //if you want it.
    //You could always just System.out.println("Exception occurred.");
    //Though the above is rather unspecific.
    System.exit(1);
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读