分析android中的日期强制关闭应用程序

分析android中的日期强制关闭应用程序,android,parsing,date,format,formatter,Android,Parsing,Date,Format,Formatter,我有以下代码: 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(); } 当我给它

我有以下代码:

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);

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

我怀疑问题在于您正在捕获
ParseException
,转储异常,然后继续,就好像什么都没有发生一样


您没有显示在哪里声明了
aktiv_dat
,但我怀疑如果解析失败,它的值是
null
。。。因此出现了
NullPointerException
。打印堆栈跟踪,然后继续执行,这几乎从来都不是处理异常的正确方法。您应该考虑您希望您的程序在面对无效数据时如何运行—是否要使用默认日期,是否要放弃该操作,等等。

我怀疑问题在于您正在捕获
ParseException
,转储异常,然后继续,就好像没有发生任何错误一样


您没有显示在哪里声明了
aktiv_dat
,但我怀疑如果解析失败,它的值是
null
。。。因此出现了
NullPointerException
。打印堆栈跟踪,然后继续执行,这几乎从来都不是处理异常的正确方法。您应该考虑您希望您的程序在面对无效数据时如何运行—是否要使用默认日期,是否要放弃该操作,等等。

您可以尝试这样编辑:


SimpleDataFormat格式化程序=新的SimpleDataFormat(“ddMMyyyy”)

您可以尝试这样编辑:


SimpleDataFormat格式化程序=新的SimpleDataFormat(“ddMMyyyy”)

Logcat日志和我之前说的一样:javanullpointerexception,然后它将我带到那一行:aktiv_dat=formatter.parse(aktiv_date)@罗苏林:不,你在帖子中没有提到NullPointerException。如果你能从日志中发布信息,那会很有帮助。我根据您目前告诉我们的内容进行了猜测,但处理如此不完整的信息确实很难。@rosualin展示您关于Calenedar编程formate的代码。.Logcat日志上说的和我说的一样:javanullpointerexception,然后它将我带到那一行:aktiv_dat=formatter.parse(aktiv_date)@罗苏林:不,你在帖子中没有提到NullPointerException。如果你能从日志中发布信息,那会很有帮助。我根据您目前告诉我们的内容进行了猜测,但处理如此不完整的信息确实很难。@rosualin显示您关于Calenedar编程格式的代码。..10x,我已将try-catch更改为将WS-call调用为try,如果不想敬酒的话,格式不正确10x,我已将try-catch更改为将WS-call调用为try,如果不这样做,则表示格式不正确