DatatypeExceptionpublic 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. |
Fields Summary |
---|
static final long | serialVersionUIDSerialization version. | 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.
super(key);
this.key = key;
this.args = args;
|
Methods Summary |
---|
public java.lang.Object[] | getArgs()Return the list of error arguments
return args;
| public java.lang.String | getKey()Return the error code
return key;
| public java.lang.String | getMessage()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;
|
|