/** * */ package org.javabuilders; import java.text.MessageFormat; import org.javabuilders.util.BuilderUtils; /** * Abstract build exception * @author Jacek Furmankiewicz */ @SuppressWarnings("serial") public class BuildException extends RuntimeException { /** * @param messageFormat Message format in MessageFormat style ({0} {1}) * @param messageArguments Arguments */ public BuildException(String messageFormat, Object...messageArguments) { super(MessageFormat.format(messageFormat, messageArguments)); } /** * @param cause */ public BuildException(Throwable cause) { super(cause); } /** * @param cause * @param messageFormat Message format in MessageFormat style ({0} {1}) * @param messageArguments Arguments */ public BuildException(Throwable cause,String messageFormat, Object...messageArguments) { super(MessageFormat.format(messageFormat, BuilderUtils.getMessageFormatSafeArguments(messageArguments)), cause); } /* (non-Javadoc) * @see java.lang.Throwable#toString() */ @Override public String toString() { if (this.getCause() == null) { return this.getMessage(); } else { return this.getMessage() + "\n" + this.getCause().getClass().getName() + ": " + this.getCause().getMessage(); } } }