FileDocCategorySizeDatePackage
DatatypeException.javaAPI DocJava SE 5 API5324Fri Aug 26 14:55:46 BST 2005com.sun.org.apache.xerces.internal.impl.dv

DatatypeException

public class DatatypeException extends Exception
Base class for datatype exceptions. For DTD types, the exception can be created from an error message. For Schema types, it needs an error code (as defined in Appendix C of the structure spec), plus an array of arguents, for error message substitution.
author
Sandy Gao, IBM
version
$Id: DatatypeException.java,v 1.4 2002/07/30 22:10:18 sandygao Exp $

Fields Summary
protected String
key
protected Object[]
args
Constructors Summary
public DatatypeException(String key, Object[] args)
Create a new datatype exception by providing an error code and a list of error message substitution arguments.

param
key error code
param
args error arguments

        super(key);
        this.key = key;
        this.args = args;
    
Methods Summary
public java.lang.Object[]getArgs()
Return the list of error arguments

return
error arguments

        return args;
    
public java.lang.StringgetKey()
Return the error code

return
error code

        return key;
    
public java.lang.StringgetMessage()
Overrides this method to get the formatted&localized error message. REVISIT: the system locale is used to load the property file. do we want to allow the appilcation to specify a different locale?

        ResourceBundle resourceBundle = null;
        resourceBundle = PropertyResourceBundle.getBundle("com.sun.org.apache.xerces.internal.impl.msg.XMLSchemaMessages");
        if (resourceBundle == null)
            throw new MissingResourceException("Property file not found!", "com.sun.org.apache.xerces.internal.impl.msg.XMLSchemaMessages", key);

        String msg = resourceBundle.getString(key);
        if (msg == null) {
            msg = resourceBundle.getString("BadMessageKey");
            throw new MissingResourceException(msg, "com.sun.org.apache.xerces.internal.impl.msg.XMLSchemaMessages", key);
        }

        if (args != null) {
            try {
                msg = java.text.MessageFormat.format(msg, args);
            } catch (Exception e) {
                msg = resourceBundle.getString("FormatFailed");
                msg += " " + resourceBundle.getString(key);
            }
        } 

        return msg;