覆盖的基类方法的捕获异常

时间:2019-03-04 12:04:45

标签: json-deserialization

我有一个要序列化的类的对象

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();
    } 


}

0 个答案:

没有答案