首先,当DAOCatchSQL异常,应该让相应的事务回滚,并继续抛出该异常

conn.rollback();

throw e;

在方法声明时throws这个异常;

第二,在Service层调用到Dao层时,try catch这个异常,在catch住中把它处理为RuntimeException异常;

处理过程是:自定义一个继承自RuntimeException的异常类AppRuntimeException;

catch(){

new AppRuntimeException();

}

第三,在Servlet中使用配置文件web.xml注册这个Exception,或者注册为RuntimeException,调用Service时,如果发生这个异常,则会跳转到相关的友好的面向用户的错误页面;

注意:如果页面未转向,则可能是反射过程中抛出的其他异常截获了我们自定义的这个RuntimeException,我们可以在这个异常中做出处理,让它转换为我们自定义的RuntimeException

第四,以上我们只是简单的处理了异常,一般正常的与业务相关的异常;