Wie gehe ich mit der Ausnahme der maximalen Dateigröße in Spring Boot um?

Ich verwende Spring Boot v1.2.5 zum Erstellen einer REST-Anwendung. Beim Hochladen von Bildern wird die maximale Dateigröße überprüft. Die folgende Eigenschaft wird bereitgestellt:

multipart.maxFileSize= 128KB

in application.properties. Diese Funktion wird von Spring Boot selbst bereitgestellt. Jetzt funktioniert die Prüfung einwandfrei. Die Frage ist, wie ich mit der Ausnahme umgehe und eine Nachricht an den Benutzer zurückschicke, die er verstehen kann.

Update 1 ----------

Ich habe eine Methode in meinem Controller geschrieben, in der ich die MultipartException mit @ behandeln möcht@ExceptionHandler. Es scheint nicht zu funktionieren.

Dies ist mein Code:

@ExceptionHandler(MultipartException.class)
@ResponseStatus(value = HttpStatus.PAYLOAD_TOO_LARGE)
public ApplicationErrorDto handleMultipartException(MultipartException exception){
    ApplicationErrorDto applicationErrorDto =  new ApplicationErrorDto();
    applicationErrorDto.setMessage("File size exceeded");
    LOGGER.error("File size exceeded",exception);
    return applicationErrorDto;
}

Update 2 ----------

achdem @luboskrnac darauf hingewiesen hat, habe ich es geschafft, eine Lösung zu finden. Wir können benutzenResponseEntityExceptionHandler hier, um diesen speziellen Fall zu behandeln. Ich glaube, wir hätten auch @ benutzen könnDefaultHandlerExceptionResolver, aberResponseEntityExceptionHandlerit @ können wir ein @ zurückgebResponseEntity, im Gegensatz zu den ersteren, deren Methoden @ zurückgebModelAndView. ICHnicht habe versuchte es aber.

Dies ist der letzte Code, den ich verwende, um mit dem @ umzugeheMultipartException :

@ControllerAdvice
public class CustomResponseEntityExceptionHandler extends ResponseEntityExceptionHandler {

private static final Logger LOGGER = Logger.getLogger(CustomResponseEntityExceptionHandler.class);

@ExceptionHandler(MultipartException.class)
@ResponseStatus(value = HttpStatus.PAYLOAD_TOO_LARGE)
@ResponseBody
public ApplicationErrorDto handleMultipartException(MultipartException exception){
    ApplicationErrorDto applicationErrorDto =  new ApplicationErrorDto();
    applicationErrorDto.setMessage("File size exceeded");
    LOGGER.error("File size exceeded",exception);
    return applicationErrorDto;
}
}

Ich benutze Swagger zum Entwickeln / Dokumentieren von REST-Apis. Dies ist die Antwort beim Hochladen einer Datei, die die Größe überschreitet.Vielen Dank

Antworten auf die Frage(2)

Ihre Antwort auf die Frage