Java中的一类异常 - ParseException

leuyius 2017-04-05 03:06:34
今天早上编码时,被问到一个异常 使用SimpleDateFormat的工具包将字符串转为时间格式时出现的异常,具体代码如下:

try {
ret = DateUtil.parseDate(inputStr, format) ;
} catch (Exception e) {
throw new BadInputException("请求参数" + param + "=" + inputStr + "不合法");
}

希望在解析日志的时候能够把异常抛出另一个格式处理。
于是 写了一个测试用例测试:

try {
Date rel = DateUtil.parseDate("2016-02-13", "yyyy/MM/dd") ;
} catch (Exception e){
System.out.println("说明异常捕获到了");
}

异常并没有捕获到,而是出现下面的错误信息

java.text.ParseException: Unparseable date: "2016-02-13"
at java.text.DateFormat.parse(DateFormat.java:366)
at com.trs.util.DateUtil.parseDate(DateUtil.java:60)
at com.trs.util.JsonUtilTest.main(JsonUtilTest.java:92)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:147)


检测 java.text.ParseException 是继承自Exception的,为什么捕获不到?
后面使用try catch 捕获ParseException也是捕获不到,并且编译就已经出错了,这是怎么回事?

请大家看看这个是什么问题?该怎么捕获到这个异常
...全文
4785 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
110成成 2017-05-13
  • 打赏
  • 举报
回复
DateUtil代码中应该把这个异常往上跑出来,上面才能捕获这个异常。
leuyius 2017-05-13
  • 打赏
  • 举报
回复
这个问题已经解决了,出错点有2个原因,自己总结的。 1.DateUtil.parse(...)把异常吃掉了。 2.ParseException是运行时异常,调用的方法没有上跑出来出来,就不能捕获。 欢迎大家来提意见。
编程点滴 2017-04-07
  • 打赏
  • 举报
回复
DateUtil的代码贴一下看一下

51,397

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧