Обработка исключений маршрута API с помощью Java и Spark

У меня есть API с маршрутами для POST, PATCH, GET и DELETE. И я должен был создать блоки try catch в каждом из них, чтобы перехватить множество возможных ошибок. В настоящее время я звоню в класс ошибок

StandardError standardError = new StandardError("415");

package domainObjects;

import com.google.gson.annotations.Expose;

public class StandardError {

    @Expose
    String status;

    @Expose
    String source;

    @Expose
    String detail;

    public StandardError(String errorCode){
        switch(errorCode) {

        case "409":
            this.status = "409";
            this.source = "/suppliers/";
            this.detail = "Resource already exists";
            break;
        case "500":
            this.status = "500";
            this.source = "/suppliers/";
            this.detail = "Unknown Error";
            break;
        case "415":
            this.status = "415";
            this.source = "/suppliers/";
            this.detail = "Unsupported media type. Content Type: application/vnd.api+json required.";
            break;
        case "404":
            this.status = "404";
            this.source = "/suppliers/";
            this.detail = "Resource does not exist";
            break;

        }
    }

Проблема заключается в том, что в каждом из методов маршрутизации существует большое количество репликации.

Раздел " Отображение исключений " на искре описывает следующий маршрут для обнаружения исключений. Проблема в том, что это только одно конкретное исключение, и мне нужно поймать многих.

Нужно ли создавать новый маршрут исключения для каждого исключения, или я могу обработать все ошибки с get("/throwexception", (request, response) -> {?

get("/throwexception", (request, response) -> {
    throw new YourCustomException();
});

exception(YourCustomException.class, (exception, request, response) -> {
    // Handle the exception here
});

0 ответов

Другие вопросы по тегам