问答详情
源自:3-6 使用 Date 和 SimpleDateFormat 类表示时间

为什么使用 parse() 方法会报错?但是添加了异常处理之后又正常运行了?

已经确定SimpleDateFormat()方法里的格式没有错,为什么添加了异常处理之后也没有报错又正常运行了?不添加异常处理的话如何使用parse() 方法?或者说我的代码应该怎么改?

代码如下:第11行为错误代码,下面注释掉的是使用try-catch后不报错的代码

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

public class Demo {
	public static void main(String[] args) {
		
		// 使用 parse() 方法将文本转换为日期
		String day = "2016年09月01日20:06:35";
		SimpleDateFormat df = new SimpleDateFormat("yyyy年MM月dd日HH:mm:ss");
		Date date = df.parse(day);
		// Date date = null;
		// try {
		// date = df.parse(day);
		// } catch (ParseException e) {
		// // TODO 自动生成的 catch 块
		// e.printStackTrace();
		// }
		System.out.println("文本转日期:" + date);
	}
}


提问者:红茶不能洒 2016-09-01 20:28

个回答

  • qq_天地神雷_0
    2016-09-01 23:06:55
    已采纳

    是转换异常, ParseException,加上异常处理后保证了代码健壮性

  • 優曇華
    2017-07-16 13:44:45

    同问,为什么会报错?我的在加上try catch之后同样在catch块后面报ParseException?

  • 一luckydog一
    2016-12-09 11:25:17

    我能问一句为什么会出现转换异常啊。。。。。。。是说我写的代码有问题吗

  • 慕勒1183686
    2016-09-17 16:38:33

    那怎么解决这个问题呢?我也遇到了同样的错误

  • 慕桂英0433982
    2016-09-01 23:04:52

    因为会出现转换异常,即 ParseException