package weiboclient4j; import weiboclient4j.utils.StringUtils; /** * @author Hover Ruan */ public class WeiboClientException extends Exception { private int responseCode; private String responseBody; private WeiboError error; public WeiboClientException() { } public WeiboClientException(String message) { super(message); } public WeiboClientException(String message, Throwable cause) { super(message, cause); } public WeiboClientException(Throwable cause) { super(cause); } public WeiboClientException(WeiboError error) { this(error.toString()); this.error = error; } @Override public String getMessage() { String sourceMessage = super.getMessage(); if (StringUtils.isNotBlank(responseBody)) { return String.format("<%d: %s> %s", responseCode, responseBody, sourceMessage); } else if (responseCode != 0) { return String.format("<%d> %s", responseCode, sourceMessage); } else { return sourceMessage; } } public WeiboClientException(int code) { responseCode = code; } public WeiboClientException(int code, String body, WeiboError error) { this(error); responseCode = code; responseBody = body; } public WeiboClientException(int code, String body, Throwable cause) { this(cause); responseCode = code; responseBody = body; } public boolean isWeiboError() { return error != null; } public WeiboError getWeiboError() { return error; } public int getResponseCode() { return responseCode; } public String getResponseBody() { return responseBody; } public void setResponseBody(String responseBody) { this.responseBody = responseBody; } }