java - 是否有另一种方法来处理异常而不是“异常处理”?
问题描述
import java.sql.SQLException;
public class JDBC {
public void create(User user) throws SQLException {
try (
Connection connection = dataSource.getConnection();
PreparedStatement statement = connection.prepareStatement(SQL_INSERT,Statement.RETURN_GENERATED_KEYS);
) {
statement.setString(1, user.getName());
statement.setString(2, user.getPassword());
statement.setString(3, user.getEmail());
// ...
int affectedRows = statement.executeUpdate();
if (affectedRows == 0) {
throw new SQLException("Creating user failed, no rows affected.");
}
try (ResultSet generatedKeys = statement.getGeneratedKeys()) {
if (generatedKeys.next()) {
user.setId(generatedKeys.getLong(1));
}
else {
throw new SQLException("Creating user failed, no ID obtained.");
}
}
}
}
}
解决方案
异常处理是处理错误的唯一方法。根据您正在编写的应用程序的类型,您可以使用例如 Spring 的 AOP。这将需要额外的努力来理解面向方面的编程。
这些评论非常相关,也许您可以详细说明您要达到的目标。解释这是找到答案的最佳方式;您很可能会被引导到一个全新的解决方案。
推荐阅读
- c# - 二维轨迹路径与 Unity 中的对象路径不匹配
- html - 即使删除任何 HTML DOM 元素,如何保持固定布局
- java - 如何在没有 IDENTITY 的情况下从 sql server 获取生成的密钥?
- webrtc - iOS 14 Safari 和手机睡眠/解锁中的 WebRTC/getUserMedia 问题
- html - 如何将编辑图标和数据放在一个垫表中
- powershell - 如何使用 PowerShell 在 TFS 中签出文件?
- heroku - 在 Heroku 的 celery/redis 任务中使用 BERT(蒸馏)模型
- mysql - 使用mysql的多值过滤器
- swift - Swift flatMap 链展开
- complex-event-processing - Esper:为另一个事件之后发生的事件创建窗口