我有一个要序列化的类的对象
class TimePOST {
@JsonSerialize(using = LocalDateTimeSerializer.class)
private String startDateTime;
@JsonSerialize(using = LocalDateTimeSerializer.class)
private String endDateTime;
public String getStartDateTime() {
return startDateTime;
}
public void setStartDateTime(String startDateTime) {
this.startDateTime = startDateTime;
}
public String getEndDateTime() {
return endDateTime;
}
public void setEndDateTime(String endDateTime) {
this.endDateTime = endDateTime;
}
}
这是实际的序列化器
class LocalDateTimeSerializer extends JsonSerializer<String> {
@Override
public void serialize(String arg0, JsonGenerator arg1, SerializerProvider arg2)
throws IOException, DateTimeParseException {
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd-MM-yyyy HH:mm");
LocalDateTime returnDateTime = LocalDateTime.parse(arg0, formatter);
arg1.writeString(String.valueOf(returnDateTime));
}
}
这是无法捕获被重写的序列化方法(DateTimeParseException)引发的异常的代码
@RequestMapping(value = "/testJSONSerialize", method = RequestMethod.GET)
public Object getNewRORMSDetailsLocalTimePost() {
try {
TimePOST timePOST = new TimePOST();
timePOST .setEndDateTime("2222");
timePOST .setEndDateTime("2222as");
} catch (DateTimeParseException exception) {
//NO EXCEPTION IS CAUGHT HERE
return exception.getMessage();
}
}