org.axiondb

Class AxionException

public class AxionException extends 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 $

Author: Rodney Waldhoff

See Also: @link org.axiondb.util.ExceptionConverter

Field Summary
protected static PropertyResourceBundle_bundle
static intDEFAULT_VENDOR_CODE
Constructor Summary
AxionException()
AxionException(int vendorcode)
AxionException(String message)
AxionException(String message, int vendorcode)
AxionException(String message, Throwable nested, int vendorcode)
Construct a new AxionExceptionwith the given message , wrapping the given Throwable.
AxionException(String message, Throwable nested)
AxionException(Throwable nested)
AxionException(Throwable nested, int vendorcode)
Method Summary
StringgetMessage()
Returns the detail message string of this AxionException
ThrowablegetNestedThrowable()
Return the ThrowableI'm wrapping, if any.
StringgetSQLState()
Returns the five-digit SQL State code (as defined in the ANSI-SQL 99 standard).
intgetVendorCode()
Returns the Axion-specific vendor code for this exception

Field Detail

_bundle

protected static PropertyResourceBundle _bundle

DEFAULT_VENDOR_CODE

public static final int DEFAULT_VENDOR_CODE

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(String message)
Equivalent to AxionException(message,null,DEFAULT_VENDOR_CODE).

AxionException

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

AxionException

public AxionException(String message, 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(String message, Throwable nested)
Equivalent to AxionException(message,nested,DEFAULT_VENDOR_CODE).

AxionException

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

AxionException

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

Method Detail

getMessage

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

getNestedThrowable

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

Returns: the ThrowableI'm wrapping, if any.

getSQLState

public 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
  • getVendorCode

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