捕获异常并向用户显示有关失败操作的警告

时间:2016-05-20 16:10:00

标签: java exception-handling

我有一个DAO方法,用于捕获异常以执行事务的回滚。

public void edit(Employees em) {
    Session s = HibernateUtil.getSessionFactory().getCurrentSession();

    try {
        s.beginTransaction();
        s.update(em);
        s.getTransaction().commit();
    } catch (Exception e) {
        e.printStackTrace();
        s.getTransaction().rollback();
    }
}

在前端,我正在调用它。

public String save() {
     Employee_dao dao = new Employee_dao();
     dao.edit(emp);
     return "index";
}

但是,我想在前端捕获异常,因此我可以向最终用户显示消息。如何在执行回滚的同时实现此目的?

1 个答案:

答案 0 :(得分:1)

您可以简单地重新抛出异常,甚至可以将其包含在包含更多信息的异常中(如果您需要在前端处提供更多信息):

public void edit(Employees em) throws Exception {
   // ...
   try {
      s.beginTransaction();
      // ...
   } catch (Exception e) {
      s.getTransaction().rollback();
      throw e; 
      // or throw new MyException("edit failed", e); 
      // or throw new RuntimeException(...);
   }
}

public String save() {
    Employee_dao dao = new Employee_dao();
    try {
        dao.edit(emp);
        return "index";
    } catch (Exception e) {
        return "error";
    }
}