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

前端之家收集整理的这篇文章主要介绍了java – 异常捕获但程序不断运行前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在开展我的第一个 Java项目,实施一个名为“HeartRates”的课程,该课程取得用户的出生日期,并返回其最大和目标心率.主要测试程序中的一切工作除了一件事之外,我无法弄清楚在异常被捕获后如何停止打印其余的代码.

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

这是代码

  1. import java.util.Scanner;
  2. import java.util.GregorianCalendar;
  3.  
  4. import javax.swing.JOptionPane;
  5.  
  6. public class HeartRatesTest {
  7.  
  8. public static void main(String[] args) {
  9. HeartRates test= new HeartRates();
  10. Scanner input = new Scanner( System.in );
  11. GregorianCalendar gc = new GregorianCalendar();
  12. gc.setLenient(false);
  13.  
  14. JOptionPane.showMessageDialog(null,"Welcome to the Heart Rate Calculator");;
  15. test.setFirstName(JOptionPane.showInputDialog("Please enter your first name: \n"));
  16. test.setLastName(JOptionPane.showInputDialog("Please enter your last name: \n"));
  17. JOptionPane.showMessageDialog(null,"Now enter your date of birth in Month/Day/Year order (hit enter after each): \n");
  18.  
  19. try{
  20. String num1= JOptionPane.showInputDialog("Month: \n");
  21. int m= Integer.parseInt(num1);
  22. test.setMonth(m);
  23. gc.set(GregorianCalendar.MONTH,test.getMonth());
  24. num1= JOptionPane.showInputDialog("Day: \n");
  25. m= Integer.parseInt(num1);
  26. test.setDay(m);
  27. gc.set(GregorianCalendar.DATE,test.getDay());
  28. num1= JOptionPane.showInputDialog("Year: \n");
  29. m= Integer.parseInt(num1);
  30. test.setYear(m);
  31. gc.set(GregorianCalendar.YEAR,test.getYear());
  32.  
  33. gc.getTime(); // exception thrown here
  34. }
  35.  
  36. catch (Exception e) {
  37. e.printStackTrace();
  38. }
  39.  
  40.  
  41.  
  42. String message="Information for "+test.getFirstName()+" "+test.getLastName()+": \n\n"+"DOB: "+ test.getMonth()+"/" +test.getDay()+ "/"
  43. +test.getYear()+ "\nAge: "+ test.getAge()+"\nMax Heart Rate: "+test.getMaxHR()+" BPM\nTarget Heart Rate(range): "+test.getTargetHRLow()
  44. +" - "+test.getTargetHRHigh()+" BPM";
  45. JOptionPane.showMessageDialog(null,message);
  46. }

解决方法

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

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

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

猜你在找的Java相关文章