首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ParseException Java

ParseException Java
EN

Stack Overflow用户
提问于 2013-04-20 12:44:55
回答 2查看 65.9K关注 0票数 10

我正在编写一个约会程序,允许用户输入约会日期,描述和约会类型。一切正常运行,直到他们选择“打印范围”,打印日期范围,当他们选择这样做时,它会告诉他们输入开始日期和结束日期,然后程序从这些日期之间拉出所有约会并将它们显示到输出框中。

以下是我在print range中遇到的错误:

代码语言:javascript
复制
AppointmentNew.java:68: unreported exception java.text.ParseException; must be caught or declared to be thrown
        Date lowDate = sdf.parse(stdin.nextLine());
                                ^
AppointmentNew.java:70: unreported exception java.text.ParseException; must be caught or declared to be thrown
        Date highDate = sdf.parse(stdin.nextLine());  
                                 ^
AppointmentNew.java:77: unreported exception java.text.ParseException; must be caught or declared to be thrown
           Date newCurrentDate = sdf.parse(currentDate); 

我想我可能应该做一个try/catch块,但不太确定如何做到这一点,我想知道是否有人可以给我一个答案或例子来修复这些错误。

下面是我的一些代码,我认为其中发生了解析错误:

代码语言:javascript
复制
import java.util.*;
import java.text.SimpleDateFormat;
import java.util.Date;

public class AppointmentNew 
{
public static void main (String[] args) throws Exception
{

if (choiceNum == 2)
     {
        System.out.print("\n\n\tEnter START Date in mm/dd/yyyy format: ");
        SimpleDateFormat sdf = new SimpleDateFormat("MM/dd/yyyy");
        Date lowDate = sdf.parse(stdin.nextLine());
        System.out.print("\n\n\tEnter END Date in mm/dd/yyyy format: ");
       Date highDate = sdf.parse(stdin.nextLine());  

        for(int i = 0; i < list.size(); i++)
        {
           int dateSpot = list.get(i).indexOf(" ");
           String currentDate = list.get(i);
           currentDate.substring(0, dateSpot);
           Date newCurrentDate = sdf.parse(currentDate); 

           if (newCurrentDate.compareTo(lowDate) >= 0 && newCurrentDate.compareTo(highDate) <= 0)
           {
              System.out.println("\n\t" + list.get(i));

           }
        }
     }
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-04-20 12:46:43

解析异常是检查到的异常,所以你必须处理它。通过抛出或try catch块。

代码语言:javascript
复制
public static void main (String[] args)

应该是

代码语言:javascript
复制
public static void main (String[] args) throws ParseException

或在try catch块中

代码语言:javascript
复制
try {
    //All your parse Operations
} catch (ParseException e) {
   //Handle exception here, most of the time you will just log it.
   e.printStackTrace();
  }
票数 13
EN

Stack Overflow用户

发布于 2013-04-20 13:01:08

为什么会出现这个错误:

如何修复它:

try catch包围令人不快的代码--这就像是在说,我将捕获错误,记录它,并希望能够对它做些什么。

代码语言:javascript
复制
 try {  // add this line
             System.out.print("\n\n\tEnter START Date in mm/dd/yyyy format: ");
             SimpleDateFormat sdf = new SimpleDateFormat("MM/dd/yyyy");
             Date lowDate = sdf.parse(stdin.nextLine());
             System.out.print("\n\n\tEnter END Date in mm/dd/yyyy format: ");  
             Date highDate = sdf.parse(stdin.nextLine());  

             for(int i = 0; i < list.size(); i++)
             {
                int dateSpot = list.get(i).indexOf(" ");
                String currentDate = list.get(i);
                currentDate.substring(0, dateSpot);
                Date newCurrentDate = sdf.parse(currentDate); 

                if (newCurrentDate.compareTo(lowDate) >= 0 && newCurrentDate.compareTo(highDate) <= 0)
                {
                   System.out.println("\n\t" + list.get(i));   
                }
             }
         } catch (ParseException ex) {
              ex.printStackTrace(); // or log it using a logging framework
         }

或者在main中抛出它-在这里,它就像是在说:无论是谁在调用这个方法,如果它发生了,请注意这个问题

代码语言:javascript
复制
public static void main (String[] args) throws Exception
票数 20
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16116652

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档