gpt4 book ai didi

java - 我们可以在 Dao 中重新抛出 SQLException 和 ClassNotFound 异常,而不是重新抛出用户定义的异常吗?

转载 作者:行者123 更新时间:2023-11-30 03:21:29 25 4
gpt4 key购买 nike

public class EmployeeDaoImpl extends JdbcDaoSupportImpl implements EmployeeDao {

@Override
public int save(Employee employee) throws EmployeeException {
String sql = "INSERT INTO EMPLOYEE VALUES(?,?,?)";
Connection conToUse = null;
PreparedStatement ps = null;
int status = 0;
try {
conToUse = getConnection();
ps = conToUse.prepareStatement(sql);
ps.setInt(1, employee.getEmpNo());
ps.setString(2, employee.getEmpName());
ps.setLong(3, employee.getEmpSal());
status = ps.executeUpdate();
} catch (SQLException e) {
// TODO Auto-generated catch block
throw new EmployeeException(
"%%% Exception occured in EmployeeDao save() %%% " + e);
} finally {
DbUtils.closeQuietly(ps);
}
return status;
}

}

在示例代码中,类 EmployeeDaoImpl 正在向数据库中插入一条记录。如果出现任何异常,则会向服务层抛出 EmployeeException(应用程序异常)。什么情况下需要抛出用户定义的异常?在这种情况下我们也可以抛出 SQLException,这是否正确?

最佳答案

在此实例中无需引发用户定义的异常。 SQLException 应该足够了。

如果 Connection 对象抛出您定义的异常,则用户定义的异常会更有意义。

只要您捕获异常并对其执行某些操作,这才是最重要的。

关于java - 我们可以在 Dao 中重新抛出 SQLException 和 ClassNotFound 异常,而不是重新抛出用户定义的异常吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31216302/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com