This starter handle all exceptions and log their.
{
"error": {
"code": -1,
"message": "Something went wrong"
"errorClass": "SomethingException",
"serviceName": "my-best-api"
}
}
build.gradle
dependencies {
implementation 'com.github.acidelk:error-handling:{version}'
}
@Configuration
public class ErrorHandlerConfiguration {
@Bean
public DefaultExceptionConverter defaultExceptionConverter(
@Value("${spring.application.name}") String application
) {
return new DefaultExceptionConverter(application)
.withHandler(HttpUnknownException.class, this::handleUnknownException)
.withDefaultHandler(this::handleDefaultException);
}
private ErrorResponse handleDefaultException(Exception e) {
return new ErrorResponse(HttpStatus.I_AM_A_TEAPOT, -1, e.getMessage(), e.getClass().getSimpleName());
}
private ErrorResponse handleUnknownException(Exception e) {
return ((HttpUnknownException) e).getErrorResponse();
}
}
@Getter
@ToString
public class DifferentChecksumException extends ServiceException {
public DifferentChecksumException(String msg) {
super(HttpStatus.NOT_FOUND, 100, msg);
}
}