在dao层通常会抛出一个DaoException如下
[code]
class UserDao{
public void insert(User user)throws DAOException{
//dao code
}
}
[/code]
在业务层调用时应该怎样处理这个DAOException呢?
个人认为用两种方式 第一种方式: 不进行处理直接抛给web层 第二种方式 转换成某种业务异常
第一种的缺点是将底层的异常暴露给了客户端 优点是web层可以明确感知到dao层发生异常并告知浏览器用户
第二种正好跟第一种相反: 缺点是web层不知道发生了dao异常,catch到的是一个业务异常,优点是dao异常不会暴露给web层
现在就到底使用那种方式比较困惑
[code]
class UserDao{
public void insert(User user)throws DAOException{
//dao code
}
}
[/code]
在业务层调用时应该怎样处理这个DAOException呢?
个人认为用两种方式 第一种方式: 不进行处理直接抛给web层 第二种方式 转换成某种业务异常
第一种的缺点是将底层的异常暴露给了客户端 优点是web层可以明确感知到dao层发生异常并告知浏览器用户
第二种正好跟第一种相反: 缺点是web层不知道发生了dao异常,catch到的是一个业务异常,优点是dao异常不会暴露给web层
现在就到底使用那种方式比较困惑