JAVA - 无效数据的自定义错误响应

时间:2017-12-31 15:05:20

标签: java json rest

我写了一个post控制器来处理来自JSON请求的日期。

现在,对于无效日期,它会返回一般的500错误而没有说明。

(即" statusDate":" 2017-13-27")

如何返回自定义错误消息而不是常规错误消息?

(即"状态日期中的日期无效'")

这是代码:

  public class CustomDateDeserializer extends JsonDeserializer<Date> {

    @Override
    public Date deserialize(JsonParser jp, DeserializationContext ctxt) throws IOException, JsonProcessingException {
        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
        format.setLenient(false);
        String dateAsString = jp.getText();

        if (dateAsString.isEmpty())
            return null;

        try {
            Date date = format.parse(dateAsString);
            if (dateAsString.split("-")[0].length() != 4)
                throw new RuntimeException();
            return date;
        } catch (ParseException e) {
            throw new RuntimeException(e);  //Here is the exception I want to change
        }
    }

1 个答案:

答案 0 :(得分:0)

创建RuntimeException时只需传递消息:

try {
    Date date = format.parse(dateAsString);
    if (dateAsString.split("-")[0].length() != 4)
        throw new RuntimeException("Another custom message");
    return date;
} catch (ParseException e) {
    throw new RuntimeException("Your custom message", e);
}