/** * Alipay.com Inc. * Copyright (c) 2004-2012 All Rights Reserved. */ package com.alipay.zdal.datasource.resource; import com.alipay.zdal.datasource.resource.util.id.SerialVersion; /** * This is the root exception for the exception hierarchy defined for the * connector architecture. * * A ResourceException contains three items, the first two of which are set from * the constructor. The first is a standard message string which is accessed via * the getMessage() method. The second is an errorCode which is accessed via the * getErrorCode() method. The third is a linked exception which provides more * information from a lower level in the resource manager. Linked exceptions are * accessed via get/setLinkedException. */ /** * * @author ���� * @version $Id: ResourceException.java, v 0.1 2014-1-6 ����05:26:57 Exp $ */ public class ResourceException extends Exception { /** @since 4.0.2 */ static final long serialVersionUID; static { if (SerialVersion.version == SerialVersion.LEGACY) serialVersionUID = 4770679801401540475L; else serialVersionUID = 547071213627824490L; } /** * The error code */ private String errorCode; /** * The linked exception */ private Exception linkedException; /** * Create an exception with a null reason. */ public ResourceException() { super(); } /** * Create an exception with a reason. * @param reason the reason */ public ResourceException(String reason) { super(reason); } /** * Create an exception with a reason and an errorCode. * @param reason the reason * @param errorCode the error code */ public ResourceException(String reason, String errorCode) { super(reason); this.errorCode = errorCode; } /** * Create an exception with a reason and an errorCode. * @param reason the reason * @param throwable the linked error */ public ResourceException(String reason, Throwable throwable) { super(reason, throwable); } /** * Create an exception with a reason and an errorCode. * @param throwable the linked error */ public ResourceException(Throwable throwable) { super(throwable); } /** * Get the error code. * @return the error code */ public String getErrorCode() { return errorCode; } /** * Get any linked exception. * @return the linked exception */ public Exception getLinkedException() { return linkedException; } /** * Get the message composed of the reason and error code. * * @return message composed of the reason and error code. */ public String getMessage() { String msg = super.getMessage(); String ec = getErrorCode(); if ((msg == null) && (ec == null)) { return null; } if ((msg != null) && (ec != null)) { return (msg + ", error code: " + ec); } return ((msg != null) ? msg : ("error code: " + ec)); } /** * Set the error code. * @param errorCode code the error code */ public void setErrorCode(String errorCode) { this.errorCode = errorCode; } /** * Set a linked exception. * @param linkedException the linked exception * @deprecated use initCause */ public void setLinkedException(Exception linkedException) { this.linkedException = linkedException; initCause(linkedException); } }