Ich baue eine REST-API mit Spring-Boot-und DAO-Schicht ist in Hibernate implementiert. Ich muss verstehen, die richtige Art zu werfen und Umgang mit Exception in der Anwendung.Aktuell mache ich es in auf diese WeiseAusnahmebedingung im Spring Boot Anwendung mit Hibernate
@Repository
public class UserDaoImpl
{
public getAllUsers() throws Exception
{
//get All Users from DB
}
}
@Service
public class UserServiceImpl
{
public getAllUsers throws MyCustomException
{ try{
userDaoImpl.getAllUsers();
}
catch(Exception e)
{
throw MyCustomException();
}
}
}
und in der Exception-Mapper
@ControllerAdvice
public class ApplicationExceptionHandler extends ResponseEntityExceptionHandler {
@ExceptionHandler({MyCustomException.class})
@ResponseBody
public ResponseEntity<?> handleCustomException(Exception e) {
log.error("", e);
Map<String, String> error = new HashMap<String, String>();
error.put("message", e.getMessage());
return new ResponseEntity<>(error, HttpStatus.NOT_ACCEPTABLE, MessageResource.getLogMessage("BAD_REQUEST_EXCEPTION"));
}
}
public class MyCustomException extends RuntimeException
{
///// ....
}
So habe ich throws-Klausel hinzugefügt (throws Exception) in DAO Schicht und fangen an Service-Schicht und wickeln sie es in Angepasste Exception (ungeprüfte Ausnahme) und tun Vererbt die Ausnahme nicht auf der Controller-Ebene. Ist das korrekt? oder gibt es einen besseren Weg?