请问 IAtom里面的异常,如何捕获?

public void test(){
 result = Db.tx(new IAtom() {

    public boolean run() throws SQLException {
        throw new Exception("如何才能捕捉到我???");
    }
       
  }
 }


评论区

JFinal

2017-11-17 11:49

在 run 方法内部和外部都可以捕获,注意 Db.tx 的事务回滚触发条件有两个:
一个是 run 方法中 return false,另一个是抛出异常

flash866

2017-11-17 14:35

@JFinal 大神请问外部如何捕获呢?我尝试 try { result = Db.tx(new IAtom() { 这样来捕获不行

JFinal

2017-11-17 14:36

单步调试一下,抛出的异常被哪个地方给吃掉了

kylin_jfinal

2017-11-17 18:03

@JFinal 才知道,抛异常也能回滚,社区真是个好地方

finalfans

2019-10-12 11:28

@JFinal 我在run()里面抛出自定义的异常,编译报错说没有声明抛出这个异常,我在run() throws 里声明自定义异常,又说Override的方法run() 不支持自定义异常的声明

热门反馈

扫码入社