001    package hirondelle.web4j.database;
002    
003    import hirondelle.web4j.model.AppException;
004    
005    /**
006     The only checked exception (excluding subclasses of this class) emitted 
007     by the data layer.
008    
009     <P>This class is an example of 
010     <a href="http://www.javapractices.com/Topic77.cjp">Data Exception Wrapping</a>, 
011     and hides the various exceptions which arise from the various flavors
012     of datastore implementation, such as <tt>SQLException</tt>, 
013     <tt>IOException</tt>, and <tt>BackingStoreException</tt>.  
014    
015     <P>Thrown when a low-level, unusual problem is encountered with the data store.
016     Examples of such a problem might include : 
017     <ul>
018     <li>faulty db connection
019     <li>failed file input-output
020     <li>inaccesible network connection
021    </ul> 
022    */
023    public class DAOException extends AppException { 
024      
025      /**
026       Constructor. 
027       
028       <P>Both arguements are passed to 
029       {@link AppException#AppException(String, Throwable)}.
030       
031       @param aMessage text describing the problem. Must have content.
032       @param aThrowable root cause underlying the problem.
033      */
034      public DAOException(String aMessage, Throwable aThrowable){
035        super(aMessage, aThrowable);
036      }
037    }