package codeine.utils.exceptions; import java.util.Arrays; public class DatabaseException extends RuntimeException { private static final long serialVersionUID = 1L; public DatabaseException(String query, String target, Throwable cause, String[] args) { super(createMessage(query, target, cause, args), cause); } private static String createMessage(String query, String target, Throwable cause, String[] args) { StringBuilder sb = new StringBuilder(); sb.append("Error on '"); sb.append(target); sb.append("' caused by '"); sb.append(cause.getMessage()); sb.append("' while executing '"); sb.append(query); sb.append("'"); if (null != args && args.length > 0) { sb.append(" with args "); sb.append(Arrays.asList(args)); } return sb.toString(); } }