【问题标题】:Android date format parse throwing an Unhandled ExceptionAndroid 日期格式解析抛出未处理的异常
【发布时间】:2015-04-16 06:04:16
【问题描述】:

我将日期作为单个string 存储在数据库中,格式为“2 15 2015”(大概是“M d yyyy”?)。下面代码中的strDate 包含获取日期的方法的返回值。我想解析日期以设置datepicker。基于Java string to date conversion中的示例

我创建了以下代码来解析日期,但在

处得到一个“Unhandled Exception: java.text.ParseException
Date date = format.parse(strDate);

挠头。

Calendar mydate = new GregorianCalendar();
String strDate = datasource.get_Column_StrVal(dbData,
        MySQLiteHelper.dbFields.COLUMN_SPECIAL_DAYS_DATE);
SimpleDateFormat  format = new SimpleDateFormat("M d yyyy", Locale.ENGLISH);
Date date = format.parse(strDate);
mydate.setTime(date);

【问题讨论】:

    标签: java android date


    【解决方案1】:

    您收到此编译时错误是因为您没有处理parse 方法抛出的ParseException。这是必要的,因为ParseException 不是运行时异常(它是一个检查异常,因为它直接从java.lang.Exception 扩展而来)。

    你需要用 try/catch 包围你的代码来处理异常,像这样:

    try {
        SimpleDateFormat  format = new SimpleDateFormat("M d yyyy", Locale.ENGLISH);
        Date date = format.parse(strDate);
        mydate.setTime(date);
    } catch (ParseException e) {
        //handle exception
    }
    

    【讨论】:

    • 那行得通。需要 try catch 似乎很奇怪。你有什么推荐的“//处理异常”行吗?
    • ParseException 是一个检查异常。您要么需要捕获它,要么声明您的方法可以抛出它(使用throws 子句)。处理异常应该回答“如果数据库中的日期不正确,我应该怎么做?”这个问题。您可能至少需要记录它。
    【解决方案2】:

    嗯,你确实拥有它。只需用 try/catch 将其包围,编译器会提示您。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-12-07
      • 1970-01-01
      • 2016-02-24
      • 1970-01-01
      • 1970-01-01
      • 2013-06-03
      • 2011-10-10
      • 1970-01-01
      相关资源
      最近更新 更多