【发布时间】:2012-12-22 17:27:05
【问题描述】:
我有一个关于使用try/catch 的最佳实践的非常基本的问题。
我有一个像这样的简单函数 (DAO):
public void addVehicle(Vehicle vehicle) {
em.getTransaction().begin();
em.persist(vehicle);
em.getTransaction().commit();
}
并在 Web 服务中使用 DAO 函数:
@WebMethod(operationName = "addVehicle")
public void addVehicle(Vehicle vehicle) {
try {
vehicleDAO.addVehicle(vehicle);
System.out.print("Vehicle added");
} catch (Exception e) {
e.printStackTrace();
}
}
在 DAO 函数中使用try/catch 更好,如下所示:
public void addVehicle(Vehicle vehicle) {
try {
em.getTransaction().begin();
em.persist(vehicle);
em.getTransaction().commit();
} catch (Exception e) {
e.printStackTrace();
}
}
【问题讨论】:
-
不可能在不知道的情况下说出来。可能是第二个版本。
-
捕获
Exception不好,您应该捕获您期望从代码中获得的特定检查异常。 -
我知道捕获特定异常更好。但这现在无关紧要:) 这只是测试示例
-
你可以这样做:public void addVehicle(Vehicle vehicle) throws Exception{...}
标签: java exception try-catch jax-rs