Обработка исключений маршрута 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
});