public class BussinessException extends Exception { private Set bussinessMessages = new TreeSet<>(); public BussinessException(List bussinessMessages) { this.bussinessMessages.addAll(bussinessMessages); } public BussinessException(BussinessMessage bussinessMessage) { this.bussinessMessages.add(bussinessMessage); } public BussinessException(Exception ex) { bussinessMessages.add(new BussinessMessage(null, ex.toString())); } public BussinessException(javax.validation.ConstraintViolationException cve) { for (ConstraintViolation constraintViolation : cve.getConstraintViolations()) { String fieldName; String message; fieldName = getCaptions(constraintViolation.getRootBeanClass(), constraintViolation.getPropertyPath()); message = constraintViolation.getMessage(); bussinessMessages.add(new BussinessMessage(fieldName, message)); } } public BussinessException(org.hibernate.exception.ConstraintViolationException cve) { bussinessMessages.add(new BussinessMessage(null, cve.getLocalizedMessage())); } public Set getBussinessMessages() { return bussinessMessages; } }