分析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,如果不这样做,则表示格式不正确