я написал ниже код с затмением:почему ParseException появляется при использовании SimpleDateFormat
String d = "2014-6-1 21:05:36";
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date =sdf.parse(d);
System.out.print(date);
и линию 4 выбрасывает Unhandled exception type ParseException.
Но если я пишу:
try {
String d = "2014-6-1 21:05:36";
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date =sdf.parse(d);
System.out.print(date);
} catch(ParseException e) {
e.printStackTrace();
System.out.print("you get the ParseException");
}
или добавить throws ParseException
в начале основного метода
public static void main(String[] args) throws ParseException {
String d = "2014-6-1 21:05:36";
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date =sdf.parse(d);
System.out.print(date);
}
Все они хорошо работают ... Что не так с моим кодом? Я использую метод printStackTrace()
в блоке catch, но почему я не могу увидеть ParseException?
это говорит вам, что разборе SimpleDateFormat в говорит, что он может выбросить это исключение. это не значит, что это так. Компилятор хочет, чтобы вы либо обрабатывали его, либо признали, что это возможность, пометив ваш метод как возможный источник этого исключения. – Jonathan
У вас есть другой формат в случае 2, тот, где вы печатаете исключение. –
Я уверен, что ваш третий отрывок там не работает. –