2016-07-15 12 views
1

Ich bin sehr neu zu Frühling mvc Sorry, wenn ich eine grundlegende Fragen stelle, muss ich Global Exception Handling in meinem Frühling 4 MVC, Jersey Projekt und JSON Antwort auf IOS Mobile App zurückgeben . Jetzt durch @ControllerAdvice und @ExceptionHandler mit, ich habe eine Klasse erstellt wie unterFrühling 4 mvc globale Ausnahme Handhabung

@ControllerAdvice 
public class GlobalExceptionHandlerController { 

    @ExceptionHandler(Exception.class) 
    public @ResponseBody handleException(HttpServletRequest reqException ex) { 
      ErrorInfo response=new ErrorInfo(); 
        if(ex.getMessage.contains("java.io")){ 
        response.setMessage("FileNotFound exception occur"); 
         return response; 
        }else if ... 
    } 

Bitte Rat, wenn obiger Ansatz richtig ist oder gibt es eine alternative Möglichkeit, alle Ausnahmen zu behandeln treten im Controller, Service und DAO Schicht.

+0

Was genau hat das mit Jersey zu tun? Ich sehe eine Referenz in Ihrem Beitrag auf Jersey, aber ich sehe keine anderen unterstützenden Details. –

Antwort

2

Was Sie verwenden, ist korrekt, alle Ausnahmen werden nur behandelt. Im Dienst oder Dao-Ebene müssen Sie nur Ihre Geschäftsausnahme werfen. Die Klasse, die Sie erstellt haben, fängt die Ausnahme. Aber Sie sollten die Ausnahme auf verschiedene Arten behandeln und definieren Sie Ihre eigene Geschäftsausnahme. hier sind einige Beispielcodes.

behandeln die Geschäftsausnahme, die BusinessErrorException ist benutzerdefinierte Ausnahme.

@ExceptionHandler(BusinessErrorException.class) 
@ResponseStatus(value = HttpStatus.BAD_REQUEST) 
@ResponseBody 
public ErrorResponse handleBusinessErrorException(BusinessErrorExceptionex) { 

    return new ErrorResponse(ex.getCode(), ex.getMessage()); 
}