/*
* JCaptcha, the open source java framework for captcha definition and integration
* Copyright (c) 2007 jcaptcha.net. All Rights Reserved.
* See the LICENSE.txt file distributed with this package.
*/
package com.octo.captcha;
/**
* Runtime exception for the captcha implementations.
*
* @author gandin
* @version $Id$
*/
public class CaptchaException extends RuntimeException {
private Throwable cause;
/**
* Constructs a new exception with <code>null</code> as its detail message. The cause is not initialized.
*/
public CaptchaException() {
}
/**
* Constructs a new exception with the specified detail message. The cause is not initialized
*
* @param message the detail message. The detail message is saved for later retrieval by the {@link #getMessage()}
* method.
*/
public CaptchaException(final String message) {
super(message);
}
/**
* Constructs a new exception with the specified detail message and cause. <p>Note that the detail message
* associated with <code>cause</code> is <i>not</i> automatically incorporated in this exception's detail message.
*
* @param message the detail message (which is saved for later retrieval by the {@link #getMessage()} method).
* @param cause the cause (which is saved for later retrieval by the {@link #getCause()} method). (A
* <tt>null</tt> value is permitted, and indicates that the cause is nonexistent or unknown.)
*
* @since 1.4
*/
public CaptchaException(final String message, final Throwable cause) {
super(message);
this.cause = cause;
}
/**
* Constructs a new exception with the specified cause and a detail message of <tt>(cause==null ? null :
* cause.toString())</tt> (which typically contains the class and detail message of <tt>cause</tt>). This
* constructor is useful for exceptions that are little more than wrappers for other throwables (for example, {@link
* java.security.PrivilegedActionException}).
*
* @param cause the cause (which is saved for later retrieval by the {@link #getCause()} method). (A <tt>null</tt>
* value is permitted, and indicates that the cause is nonexistent or unknown.)
*
* @since 1.4
*/
public CaptchaException(final Throwable cause) {
super(cause.getMessage());
this.cause = cause;
}
/**
* @return the root thowable that construct this exception, null if none
*/
public Throwable getCause() {
return cause;
}
}