multex
Class Exc

java.lang.Object
  extended byjava.lang.Throwable
      extended byjava.lang.Exception
          extended bymultex.Exc
All Implemented Interfaces:
MultexException, java.io.Serializable

public class Exc
extends java.lang.Exception
implements MultexException

Problem-related exception with parameters and internationalizable message text. This class serves for the framework user as a base class for defining problem-related exceptions. It can be used to throw directly, too, but such exceptions cannot be handled individually nor get internationalized.

Naming convention:

All user-defined exception classes derived from Exc should have a name ending in Exc. The pattern is:
    class ErrorconditionExc extends Exc { ... }
  

Parameters

All elements of the Object[] are considered positional parameters of this exception. The corresponding placeholders in the message text patterns have the syntax: {i} with i being the number of the parameter in the range 0..9.

The exception parameters can be substituted into the corresponding message text pattern in a desired locale format by class MsgText, which itself makes use of class java.text.MessageFormat.
See the usage examples Copy, AwtCopy, SwingCopy in directory demo.

Relation to Standards

Class java.text.MesageFormat does much more in direction of internationalization than just to insert parameters into a message text pattern. You can e.g. specify different styles of formatting a parameter. E.g. formatting a parameter of type java.util.Date at position 0 could be done by the following parameter formatting directive: {0,date}.

Cause of a problem-related exception?

The class Exc does not provide a constructor parameter for its cause, as it is usually found out testing a value. In the rare case, you want to give a cause to a business rule exception, you can provide it since JRE 1.4 after creation of the exception object by Throwable.initCause().

Author:
Christoph Knabe, TFH Berlin, 1999-2005
See Also:
Serialized Form

Field Summary
static java.lang.String className
          The unqualified name of this class
 
Constructor Summary
Exc(java.lang.String i_defaultMessageTextPattern)
          Convenience constructor null
Exc(java.lang.String i_defaultMessageTextPattern, java.lang.Object i_object0)
          Convenience constructor 0
Exc(java.lang.String i_defaultMessageTextPattern, java.lang.Object[] i_parameters)
          Constructs an Exc with a default message text pattern and exception parameters as an polymorphic Object[].
Exc(java.lang.String i_defaultMessageTextPattern, java.lang.Object i_object0, java.lang.Object i_object1)
          Convenience constructor 1
Exc(java.lang.String i_defaultMessageTextPattern, java.lang.Object i_object0, java.lang.Object i_object1, java.lang.Object i_object2)
          Convenience constructor 2
Exc(java.lang.String i_defaultMessageTextPattern, java.lang.Object i_object0, java.lang.Object i_object1, java.lang.Object i_object2, java.lang.Object i_object3)
          Convenience constructor 3
Exc(java.lang.String i_defaultMessageTextPattern, java.lang.Object i_object0, java.lang.Object i_object1, java.lang.Object i_object2, java.lang.Object i_object3, java.lang.Object i_object4)
          Convenience constructor 4
Exc(java.lang.String i_defaultMessageTextPattern, java.lang.Object i_object0, java.lang.Object i_object1, java.lang.Object i_object2, java.lang.Object i_object3, java.lang.Object i_object4, java.lang.Object i_object5)
          Convenience constructor 5
Exc(java.lang.String i_defaultMessageTextPattern, java.lang.Object i_object0, java.lang.Object i_object1, java.lang.Object i_object2, java.lang.Object i_object3, java.lang.Object i_object4, java.lang.Object i_object5, java.lang.Object i_object6)
          Convenience constructor 6
Exc(java.lang.String i_defaultMessageTextPattern, java.lang.Object i_object0, java.lang.Object i_object1, java.lang.Object i_object2, java.lang.Object i_object3, java.lang.Object i_object4, java.lang.Object i_object5, java.lang.Object i_object6, java.lang.Object i_object7)
          Convenience constructor 7
Exc(java.lang.String i_defaultMessageTextPattern, java.lang.Object i_object0, java.lang.Object i_object1, java.lang.Object i_object2, java.lang.Object i_object3, java.lang.Object i_object4, java.lang.Object i_object5, java.lang.Object i_object6, java.lang.Object i_object7, java.lang.Object i_object8)
          Convenience constructor 8
Exc(java.lang.String i_defaultMessageTextPattern, java.lang.Object i_object0, java.lang.Object i_object1, java.lang.Object i_object2, java.lang.Object i_object3, java.lang.Object i_object4, java.lang.Object i_object5, java.lang.Object i_object6, java.lang.Object i_object7, java.lang.Object i_object8, java.lang.Object i_object9)
          Convenience constructor 9
 
Method Summary
 java.lang.String getDefaultMessageTextPattern()
          Returns the default message text pattern for this exception object or null.
 java.lang.String getMessage()
          Returns all user-provided information contained in the exception object in an internal, but human readable format.
 java.lang.Object[] getParameters()
          Returns a copy of the exception parameters.
 boolean hasParameters()
          Returns true, if the exception parameter array exits and has at least one element.
 void printStackTrace()
          Prints the chained, compact stack traces of this Failure object to the standard error stream System.err.
 void printStackTrace(java.io.PrintStream io_printer)
          Prints the chained, compact stack traces of this Failure object to io_printer.
 void printStackTrace(java.io.PrintWriter io_printer)
          Prints the chained, compact stack traces of this Failure object to io_printer.
 
Methods inherited from class java.lang.Throwable
fillInStackTrace, getCause, getLocalizedMessage, getStackTrace, initCause, setStackTrace, toString
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

className

public static final java.lang.String className
The unqualified name of this class

See Also:
Constant Field Values
Constructor Detail

Exc

public Exc(java.lang.String i_defaultMessageTextPattern)
Convenience constructor null

See Also:
Exc(String, Object[])

Exc

public Exc(java.lang.String i_defaultMessageTextPattern,
           java.lang.Object i_object0)
Convenience constructor 0

See Also:
Exc(String, Object[])

Exc

public Exc(java.lang.String i_defaultMessageTextPattern,
           java.lang.Object i_object0,
           java.lang.Object i_object1)
Convenience constructor 1

See Also:
Exc(String, Object[])

Exc

public Exc(java.lang.String i_defaultMessageTextPattern,
           java.lang.Object i_object0,
           java.lang.Object i_object1,
           java.lang.Object i_object2)
Convenience constructor 2

See Also:
Exc(String, Object[])

Exc

public Exc(java.lang.String i_defaultMessageTextPattern,
           java.lang.Object i_object0,
           java.lang.Object i_object1,
           java.lang.Object i_object2,
           java.lang.Object i_object3)
Convenience constructor 3

See Also:
Exc(String, Object[])

Exc

public Exc(java.lang.String i_defaultMessageTextPattern,
           java.lang.Object i_object0,
           java.lang.Object i_object1,
           java.lang.Object i_object2,
           java.lang.Object i_object3,
           java.lang.Object i_object4)
Convenience constructor 4

See Also:
Exc(String, Object[])

Exc

public Exc(java.lang.String i_defaultMessageTextPattern,
           java.lang.Object i_object0,
           java.lang.Object i_object1,
           java.lang.Object i_object2,
           java.lang.Object i_object3,
           java.lang.Object i_object4,
           java.lang.Object i_object5)
Convenience constructor 5

See Also:
Exc(String, Object[])

Exc

public Exc(java.lang.String i_defaultMessageTextPattern,
           java.lang.Object i_object0,
           java.lang.Object i_object1,
           java.lang.Object i_object2,
           java.lang.Object i_object3,
           java.lang.Object i_object4,
           java.lang.Object i_object5,
           java.lang.Object i_object6)
Convenience constructor 6

See Also:
Exc(String, Object[])

Exc

public Exc(java.lang.String i_defaultMessageTextPattern,
           java.lang.Object i_object0,
           java.lang.Object i_object1,
           java.lang.Object i_object2,
           java.lang.Object i_object3,
           java.lang.Object i_object4,
           java.lang.Object i_object5,
           java.lang.Object i_object6,
           java.lang.Object i_object7)
Convenience constructor 7

See Also:
Exc(String, Object[])

Exc

public Exc(java.lang.String i_defaultMessageTextPattern,
           java.lang.Object i_object0,
           java.lang.Object i_object1,
           java.lang.Object i_object2,
           java.lang.Object i_object3,
           java.lang.Object i_object4,
           java.lang.Object i_object5,
           java.lang.Object i_object6,
           java.lang.Object i_object7,
           java.lang.Object i_object8)
Convenience constructor 8

See Also:
Exc(String, Object[])

Exc

public Exc(java.lang.String i_defaultMessageTextPattern,
           java.lang.Object i_object0,
           java.lang.Object i_object1,
           java.lang.Object i_object2,
           java.lang.Object i_object3,
           java.lang.Object i_object4,
           java.lang.Object i_object5,
           java.lang.Object i_object6,
           java.lang.Object i_object7,
           java.lang.Object i_object8,
           java.lang.Object i_object9)
Convenience constructor 9

See Also:
Exc(String, Object[])

Exc

public Exc(java.lang.String i_defaultMessageTextPattern,
           java.lang.Object[] i_parameters)
Constructs an Exc with a default message text pattern and exception parameters as an polymorphic Object[].

Example of defining an exception with parameters:

  public static class StartedExc extends Exc {
    public StartedExc(final String i_driver, final java.util.Date i_date){
      super("Copy-driver {0}, version of {1,date} was started",
        new Object[]{i_driver,i_date}
      );
    }
  }
 
Instead of creating an Object[] yourself you can use the corresponding convenience constructors.

Parameters:
i_defaultMessageTextPattern - The default message text pattern in the syntax of java.text.MessageFormat or null, if message text patterns shall only be taken from a ResourceBundle
i_parameters - Exception parameters as an polymorphic Object[], which can be inserted into the message text pattern by placeholders {0} ... {9}. null is allowed here, if you do not want to provide exception parameters.
Method Detail

getMessage

public java.lang.String getMessage()
Description copied from interface: MultexException
Returns all user-provided information contained in the exception object in an internal, but human readable format. The information are the default message text pattern and the exception parameters of this object or null if none of these is provided. E.g.:
  TEXT: Unable to create file {0} in directory {1}
  {0}=myfile.dat  {1}=C:\temp\data
  
Overrides the same method of java.lang.Throwable

Specified by:
getMessage in interface MultexException

hasParameters

public boolean hasParameters()
Description copied from interface: MultexException
Returns true, if the exception parameter array exits and has at least one element.

Specified by:
hasParameters in interface MultexException

getParameters

public java.lang.Object[] getParameters()
Description copied from interface: MultexException
Returns a copy of the exception parameters.

Specified by:
getParameters in interface MultexException

getDefaultMessageTextPattern

public java.lang.String getDefaultMessageTextPattern()
Description copied from interface: MultexException
Returns the default message text pattern for this exception object or null. Inserting the exception parameters into the message text pattern is done by class MsgText. Locale specific message text patterns are handled by MsgText, too.

Specified by:
getDefaultMessageTextPattern in interface MultexException

printStackTrace

public void printStackTrace()
Prints the chained, compact stack traces of this Failure object to the standard error stream System.err.

See Also:
printStackTrace(java.io.PrintWriter)

printStackTrace

public void printStackTrace(java.io.PrintStream io_printer)
Prints the chained, compact stack traces of this Failure object to io_printer.

See Also:
printStackTrace(java.io.PrintWriter)

printStackTrace

public void printStackTrace(java.io.PrintWriter io_printer)
Prints the chained, compact stack traces of this Failure object to io_printer.