8.8. Dealing with Deviations and Errors
As discussed in Chapter 3, any system has to deal with deviations and errors. Deviations are those conditions that can be expected to occur in normal processing. Errors are those conditions resulting from hardware or software malfunctions.
8.8.1. Signaling Errors and Deviations
Tim and I separated the conditions that occur during processing into errors and deviations. We needed to decide how to signal each type of condition. Errors from hardware and software malfunctions are generally not expected, so exceptions provide a clean way to handle those conditions. To signal deviations some groups prefer using exceptions and other groups prefer using return values from methods. Tim and I chose exceptions, since that is the common paradigm in Java.
8.8.2. Deviation Conventions
The com.samscdrental.failures package contains deviations and exceptions:
Deviation.java
CDCategoryFormatDeviation.java
CheckInDeviation.java
CheckOutDeviation.java
CustomerIDFormatDeviation.java
DollarFormatDeviation.java
ImportFileDeviation.java
ImportFormatDeviation.java
LateReturnDeviation.java
NameFormatDeviation.java
ParseLineDeviation.java
PhysicalIDFormatDeviation.java
PrinterFailureDeviation.java
StatusDeviation.java
UPCCodeFormatDeviation.java
SeriousErrorException.java
To separate deviations from exceptions, all expected errors are derived from Deviation, which in turn is derived from Exception, the base class for Java exceptions. The Deviation object contains ...