package core.framework.api.util;
import java.io.PrintWriter;
import java.io.StringWriter;
/**
* @author neo
*/
public final class Exceptions {
public static String stackTrace(Throwable e) {
StringWriter writer = new StringWriter();
e.printStackTrace(new PrintWriter(writer));
return writer.toString();
}
public static Error error(String pattern, Object... arguments) { // follow convention of logger, if last arg is exception, make it cause
if (arguments.length > 0) {
Object lastArgument = arguments[arguments.length - 1];
if (lastArgument instanceof Throwable) {
Object[] messageArguments = new Object[arguments.length - 1];
System.arraycopy(arguments, 0, messageArguments, 0, arguments.length - 1);
return new Error(Strings.format(pattern, messageArguments), (Throwable) lastArgument);
}
}
return new Error(Strings.format(pattern, arguments));
}
}