我有这段代码:
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);
我该怎么做才能让它不崩溃?
答案 0 :(得分:3)
我怀疑问题在于您正在捕获ParseException
,转储异常,然后继续,好像什么都没有出错。
您尚未显示声明aktiv_dat
的位置,但如果解析失败,我怀疑它的值为null
...因此NullPointerException
。打印堆栈跟踪然后继续几乎永远正确处理异常的方式。您应该考虑一下您希望程序在无效数据面前表现如何 - 您是否想要使用默认日期,是否要放弃该操作等等...
答案 1 :(得分:0)
你可以尝试这样编辑:
SimpleDateFormat formatter = new SimpleDateFormat(“ddMMyyyy”);