For brevity, the proposed user interfaces have no facility to view
model details such as the rules of an association model, or the nodes
of a decision tree model.
This chapter follows the same naming conventions as Chapter 12
about variable names used in the source code:
• Input arguments are prefixed with i.
• Output arguments are prefixed with o.
• Member variables of objects are prefixed with m.
• Local variables are prefixed with l.
Managing JDM Exceptions
One purpose of the tools developed here is to show how to deal with
different JDM implementations. Since applications will have to deal
with exceptions, it is worth spending some time on JDM exception
management before writing portable JDM code.
How to deal with exceptions is a subject of debate among Java
users; there is no clear consensus. For example, some Java projects
make maximum reuse of the existing Java exception classes; others
define a single root Java exception class for the functional domain of
interest. For JDM, the expert group decided to create a single root for
all JDM java exceptions, plus two specializations of runtime excep-
tions (see Chapter 8). Almost all methods of the application program-
ming interface (API) have been declared to throw the generic JDM
Regular exceptions defined by JDM are: ConnectionFailureException,
IncompatibleSpecificationException, InvalidObjectException (decomposed
into DuplicateEntryException, EntryNotFoundException, ObjectExistsEx-
ception, ObjectNotFoundException ), InvalidURIException, and TaskExcep-
tion . Except for the ConnectionFailureException, all exceptions can be
avoided by proper design of the calling program. Through the use of
capabilities and verify methods, JDM provides mechanisms to prepare
arguments to invoked methods, and to check that these invocations
are compatible with the connected DME. For example, when design-
ing a graphical interface to ask a user to enter a dataset uniform
resource identifier (URI), a programmer could either use the DME
vendor documentation to write verification code to check that the
provided URI has the proper syntax, or the programmer could provide
the URI directly to the DME and handle the InvalidURIException with