下边这个代码为什么不抛异常?

安迪 2012-04-26 06:05:19
public class DateCheck {
public static void main(String[] args) {
DateFormat oDateFormat = new SimpleDateFormat("yyyyMMdd");

try {
System.out.println(oDateFormat.parse("2011011j"));
} catch (ParseException e) {
// TODO Auto-generated catch block
System.out.print(e);
}

}
}
...全文
226 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
安迪 2012-05-04
  • 打赏
  • 举报
回复
虽然已经结贴。但是由于我错误的结论可能误导了很多朋友。这里边做一下解释:
首先,这个与JDK版本并没有关系。否定我前边的结论。
其次,原因在“new SimpleDateFormat("yyyyMMdd");”段代码里边;如果将yyyyMMdd改成yyyyMMDD的话。就会产生异常并捕获。否则将没有异常抛出。
并不会像上边几位朋友说的,不合法的日期就一定会抛异常。
OPPPPOP 2012-04-27
  • 打赏
  • 举报
回复
JB了 看错了 忽略我前面说的
dxqrr 2012-04-27
  • 打赏
  • 举报
回复
这个要看SimpleDateFormat内部的处理
OPPPPOP 2012-04-27
  • 打赏
  • 举报
回复
在1.6.0的API看到的解释如下

根据给定的解析位置开始解析日期/时间字符串。例如,时间文本 "07/10/96 4:5 PM, PDT" 会解析成等同于 Date(837039928046) 的 Date。
在默认情况下,进行的解析是不严格的:如果输入的形式不是此对象的格式化方法使用的形式,但仍可作为日期进行解析,则解析将获得成功。客户端可能通过调用 setLenient(false) 来强调严格遵守该格式。

这样看不抛异常时对的
zhy0511 2012-04-27
  • 打赏
  • 举报
回复
我想楼主只是为了让我们见识一下新鲜事物。。估计这是jdk的bug吧,在jdk1.6.20给修复了。。
a394773734 2012-04-27
  • 打赏
  • 举报
回复
你这个执行了上面的打印语句,没有抛出异常。结果是:
Sat Jan 01 00:00:00 CST 2011
如果你想抛出异常,可以将上面的字符串置为空
冰释绿茵 2012-04-27
  • 打赏
  • 举报
回复
好神奇的东西
朗晴 2012-04-27
  • 打赏
  • 举报
回复
lliiqiang 2012-04-27
  • 打赏
  • 举报
回复
不符合给定的日期格式,肯定会抛出异常的
原来缘来 2012-04-26
  • 打赏
  • 举报
回复
这是一个神奇的JDK
VanBaston 2012-04-26
  • 打赏
  • 举报
回复
哎 有些问题还是很奇特的
安迪 2012-04-26
  • 打赏
  • 举报
回复
1. 在jdk1.6.03和jdk1.6.14中,会将这个日期直接解析成 “2013-03-01” ;

2. 而在jdk1.6.20中,这行代码,是无法成功执行的,会抛出“非法的参数异常”
由于手头上只有jdk1.6中的这个三个小版本, 所以只测试了这三个。

有人改用正则表达式,其实不用那么麻烦的。搞定结贴。希望对大家有帮助。

安迪 2012-04-26
  • 打赏
  • 举报
回复
[Quote=引用楼主 的回复:]
public class DateCheck {
public static void main(String[] args) {
DateFormat oDateFormat = new SimpleDateFormat("yyyyMMdd");

try {
System.out.println(oDateFormat.parse("2011011j"));
} catch (Pa……
[/Quote]
可是没有走到异常里边去!为什么?
cz_study_java 2012-04-26
  • 打赏
  • 举报
回复
我感觉可能是把从字符串截断了
gukuitian 2012-04-26
  • 打赏
  • 举报
回复
catch用的作用就是处理捕获到的异常。

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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