如何解决java.text.ParseException

时间:2013-07-26 13:06:38

标签: java date simpledateformat parseexception

我的目录中包含日期格式名称的文件夹。directory

我有一个代码来删除格式不是日期格式的文件夹。它工作但抛出异常。

我的代码是:

DateFormat dateFormat=new SimpleDateFormat("yyyy-MM-dd");
        Date dat=new Date();
        String direct="D:\\tempm\\Sample\\"+dateFormat.format(dat);
        String dirPath="D:\\tempm\\Sample\\";
        File filePath=new File(direct);
        if(!filePath.exists())
        {
            filePath.mkdir();
            System.out.println("folder created");
        }
        File dirDel=new File(dirPath);
        for(File fileDel:dirDel.listFiles())
        {

            System.out.println("files inside???"+fileDel.getName());
            Date d2 = null;
            try {
                dateFormat.setLenient(true);
                d2 = dateFormat.parse(fileDel.getName());  //throwing exception here
                System.out.println("the result is "+d2);
            } catch (ParseException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            if(d2==null)
            {
                fileDel.delete();
            }

        }

错误消息是

java.text.ParseException: Unparseable date: "New folder"
    at java.text.DateFormat.parse(Unknown Source)
    at ext.gt.test.DateMod.main(DateMod.java:31)

我的代码正在运行,但我需要解决该异常。是否有其他方法可以执行此检查?最好在没有正则表达式的情况下检查dateformat。

1 个答案:

答案 0 :(得分:3)

我建议使用正则表达式检查文件夹是否为“日期”文件夹。您不应该使用异常来控制应用程序的常规流程。这被认为是不好的做法,因为它更难以遵循实际的逻辑并发现用于“例外”(因此名称......)的案例的代码。

这个想法在这里进一步讨论:Why not use exceptions as regular flow of control?