org.axiondb
Class AxionException

java.lang.Object
  extended by java.lang.Throwable
      extended by java.lang.Exception
          extended by org.axiondb.AxionException
All Implemented Interfaces:
java.io.Serializable
Direct Known Subclasses:
ConstraintViolationException, TransactionConflictException

public class AxionException
extends java.lang.Exception

Root exception for Axion related or specific problems. This exception provides access to Axion-specific SQL Vendor codes. Where possible they are mapped to SQL99 / XOPEN 99 SQL state codes.

SQLState codes consisti of 5 characters. The first 2 characters specify the error class, the last three characters specify the subclass. For example, the SQLSTATE value '22012' consists of class code 22 (data exception) and subclass code 012 (division by zero). * Each of the five characters in a SQLSTATE value is a digit (0..9) or an uppercase Latin letter (A..Z).

Class codes that begin with a digit in the range 0..4 or a letter in the range A..H are reserved for predefined conditions. Within predefined classes, subclass codes that begin with a digit in the range 0..4 or a letter in the range A..H are reserved for predefined sub-conditions. All other subclass codes are reserved for implementation-defined sub-conditions. (see ANSI-SQL99 specification).

Version:
$Revision: 1.9 $ $Date: 2005/04/07 19:32:00 $
See Also:
org.axiondb.util.ExceptionConverter}, Serialized Form

Field Summary
protected static java.util.PropertyResourceBundle _bundle
           
static int DEFAULT_VENDOR_CODE
           
 
Constructor Summary
AxionException()
          Equivalent to AxionException(null,null,DEFAULT_VENDOR_CODE).
AxionException(int vendorcode)
          Equivalent to AxionException(null,null,vendorcode).
AxionException(java.lang.String message)
          Equivalent to AxionException(message,null,DEFAULT_VENDOR_CODE).
AxionException(java.lang.String message, int vendorcode)
          Equivalent to AxionException(message,null,vendorcode).
AxionException(java.lang.String message, java.lang.Throwable nested)
          Equivalent to AxionException(message,nested,DEFAULT_VENDOR_CODE).
AxionException(java.lang.String message, java.lang.Throwable nested, int vendorcode)
          Construct a new AxionExceptionwith the given message , wrapping the given Throwable.
AxionException(java.lang.Throwable nested)
          Equivalent to AxionException(null,nested,DEFAULT_VENDOR_CODE).
AxionException(java.lang.Throwable nested, int vendorcode)
          Equivalent to AxionException(null,nested,vendorcode).
 
Method Summary
 java.lang.String getMessage()
          Returns the detail message string of this AxionException
 java.lang.Throwable getNestedThrowable()
          Return the ThrowableI'm wrapping, if any.
 java.lang.String getSQLState()
          Returns the five-digit SQL State code (as defined in the ANSI-SQL 99 standard).
 int getVendorCode()
          Returns the Axion-specific vendor code for this exception
 
Methods inherited from class java.lang.Throwable
fillInStackTrace, getCause, getLocalizedMessage, getStackTrace, initCause, printStackTrace, printStackTrace, printStackTrace, setStackTrace, toString
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

DEFAULT_VENDOR_CODE

public static final int DEFAULT_VENDOR_CODE
See Also:
Constant Field Values

_bundle

protected static java.util.PropertyResourceBundle _bundle
Constructor Detail

AxionException

public AxionException()
Equivalent to AxionException(null,null,DEFAULT_VENDOR_CODE).


AxionException

public AxionException(int vendorcode)
Equivalent to AxionException(null,null,vendorcode).


AxionException

public AxionException(java.lang.String message)
Equivalent to AxionException(message,null,DEFAULT_VENDOR_CODE).


AxionException

public AxionException(java.lang.String message,
                      int vendorcode)
Equivalent to AxionException(message,null,vendorcode).


AxionException

public AxionException(java.lang.String message,
                      java.lang.Throwable nested,
                      int vendorcode)
Construct a new AxionExceptionwith the given message , wrapping the given Throwable.

Parameters:
message - my detailed message (possibly null)
nested - a Throwableto wrap (possibly null)
vendorcode - an error code

AxionException

public AxionException(java.lang.String message,
                      java.lang.Throwable nested)
Equivalent to AxionException(message,nested,DEFAULT_VENDOR_CODE).


AxionException

public AxionException(java.lang.Throwable nested)
Equivalent to AxionException(null,nested,DEFAULT_VENDOR_CODE).


AxionException

public AxionException(java.lang.Throwable nested,
                      int vendorcode)
Equivalent to AxionException(null,nested,vendorcode).

Method Detail

getVendorCode

public int getVendorCode()
Returns the Axion-specific vendor code for this exception


getMessage

public java.lang.String getMessage()
Returns the detail message string of this AxionException

Overrides:
getMessage in class java.lang.Throwable

getSQLState

public java.lang.String getSQLState()
Returns the five-digit SQL State code (as defined in the ANSI-SQL 99 standard). The translation works as follows:

-- any vendor code lower than 100000 is just converted to a String.

-- vendor codes 10000 and over use the following rules: a) first digit indicates the position of a non-digit character.

  • 1: Second Class Digit is Alphanumeric (e.g. SQL StateCode "0Z001")
  • 2: Last Subclass Digit is Alphanumeric (e.g. "2200E")
  • 3: Second Class Digit and Last Subclass Digit are alphanumeric
  • 4: Other case (e.g. for class HZ) --> explicit conversion value (must be assigned directly in code) b) Alpha Character is translated into its position in the Alphabet (e.g. H=08; Z=26) etc. thus 1026001 is translated into 0Z001 32080001 would be translated into 2H00A


  • getNestedThrowable

    public java.lang.Throwable getNestedThrowable()
    Return the ThrowableI'm wrapping, if any.

    Returns:
    the ThrowableI'm wrapping, if any.