/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package org.dlect.exception;
/**
*
* @author lee
*/
public class DLectException extends Exception {
private static final long serialVersionUID = 1L;
private final DLectExceptionCause causeCode;
public DLectException(DLectExceptionCause causeCode) {
this.causeCode = causeCode;
}
public DLectException(DLectExceptionCause causeCode, String message) {
super(message);
this.causeCode = causeCode;
}
public DLectException(DLectExceptionCause causeCode, Throwable cause) {
super(cause);
this.causeCode = causeCode;
}
public DLectException(DLectExceptionCause causeCode, String message, Throwable cause) {
super(message, cause);
this.causeCode = causeCode;
}
public DLectException(DLectException cause) {
this(cause.getCauseCode(), cause.getCause());
}
public DLectException(String message, DLectException cause) {
this(cause.getCauseCode(), message, cause.getCause());
}
public DLectExceptionCause getCauseCode() {
return causeCode;
}
@Override
public String toString() {
String s = getClass().getName();
String message = getLocalizedMessage();
return (message != null) ? (s + " (" + causeCode + "): " + message) : s + " (" + causeCode + ")";
}
}