0

我有这个代码:

aktiv_date = dateaktiv.getText().toString();
SimpleDateFormat formatter = new SimpleDateFormat("dd.MM.yyyy");
try {
     aktiv_dat = formatter.parse(aktiv_date);
    } catch (java.text.ParseException e) {
     e.printStackTrace();
    }

当我给它一个像:12101989 或类似的数字时,它不具有 dd.MM.yyyy 格式,程序崩溃,因为它说来自 aktiv_date 的数据无法解析:

 aktiv_dat = formatter.parse(aktiv_date);

我该怎么做才能让它不崩溃?

4

2 回答 2

3

我怀疑问题是你正在捕获ParseException,转储异常,然后继续,好像没有出错一样

您没有显示aktiv_dat声明的位置,但我怀疑它的值null是否解析失败......因此NullPointerException. 打印堆栈跟踪然后继续几乎永远不是处理异常的正确方法。你应该考虑你希望你的程序在面对无效数据时如何表现——你想使用默认日期,你想放弃那个操作,等等......

于 2012-10-19T06:43:00.510 回答
0

你可以尝试像这样编辑:

SimpleDateFormat 格式化程序 = new SimpleDateFormat("ddMMyyyy");

于 2012-10-19T06:46:41.047 回答