View Javadoc
1   package ejava.examples.daoex.dao;
2   
3   /**
4    * This is the base exception for example DAOs. Note the design 
5    * decision that needs to be made between a checked Exception and 
6    * an unchecked RuntimeException. By using checked Exceptions you 
7    * are requiring all interfacing code to deal with the exception --
8    * even if it cannot correct it. By using unchecked RuntimeExceptions
9    * the interfacing business code can be written cleaner by not 
10   * being polluted with infrastructure exceptions.
11   */
12  public class DAOException extends RuntimeException {
13      private static final long serialVersionUID = 1L;
14      public DAOException() {}
15      public DAOException(String message) { super(message); }
16      
17      //be wary of the exceptions that carry along infrastructure 
18      //exceptions. Care should be taken higher up in the architecture
19      //to fully process these exceptions locally and not propogate
20      //the lower level exceptions to RMI clients. Classpath issues
21      //can occur at that point.
22      
23      public DAOException(String message, Throwable rootCause) {
24          super(message, rootCause);
25      }
26      public DAOException(Throwable rootCause) {
27          super(rootCause);
28      }
29  }