J'ai un service de repos qui lèvera une exception et je veux savoir quelle sera la meilleure façon de gérer cela.
Ainsi, j'ai un service de repos qui peut lancer une exception définie par l'utilisateur et je l'attrape à l'intérieur du bloc catch et je lance à nouveau cette exception ! et j'utilise le cadre de repos pour l'attraper. De même pour les exceptions non définies par l'utilisateur. J'ai pensé que ce serait bien car j'ai un certain nombre de services de repos et toute la gestion du code d'exception définie par l'utilisateur sera au même endroit.
Je voudrais savoir si c'est la bonne façon de gérer les exceptions dans le service de repos ?
J'utilise le jersey.
// rest service
@POST
public void doSomething() {
try {
// ... some piece of code that can throw user defined exception as well as runtime exception
} catch(UserDefinedException e) {
throws new UserDefinedException(e);
} catch(Exception e) {
throws new ServiceException(e);
}
// Now I have a @Provider to catch this thrown exception
@Provider
public class UserDefinedExceptionHandler implements
ExceptionMapper {
public Response toResponse(UserDefinedException exception) {
ClientResponse clientResponse = new ClientResponse();
ResponseStatus status = new ResponseStatus();
clientResponse = handleUserDefinedException(exception, status, clientResponse);
return Response.ok(clientResponse).build();
}
// similarly for the ServiceException