加载中

波总,还有一个问题想请教一下,我现在使用QuartzPlugin,以下是YdzJob类的代码,在Job类里面抛出的异常能被全局异常拦截器抓到吗?

public class YdzJob implements Job {
private static Logger log = LoggerFactory.getLogger(YdzJob.class);


public void execute(JobExecutionContext arg0) throws JobExecutionException {
log.info("------调度任务【Ydz】启动------" + DateUtil.curDate());
try {
QuartzService.me.exec(QuartzService.SchedType.YDZ); //这里抛出异常能被全局异常拦截器抓到吗?
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
log.info("------调度任务【Ydz】结束------" + DateUtil.curDate());
}


}

这是我的拦截器代码

package com.icss.interceptor;


import com.icss.service.LogService;
import com.jfinal.aop.Interceptor;
import com.jfinal.aop.Invocation;


public class ExceptionInterceptor implements Interceptor {


@Override
public void intercept(Invocation inv) {
try {
inv.invoke();
} catch (Exception e) {
String excpMsg=e.getMessage();
//System.out.println("进来了");
LogService.me.logFailure(null, null, null, excpMsg);
}
}


}


@lcg0211
@JFinal 你好,想跟你请教个问题:如果业务层事务异常,我想在业务层把相关的异常信息插入数据库日志表中,但是异...
多谢指导
@lcg0211
@JFinal 你好,想跟你请教个问题:参考了你的这篇博文,http://my.oschina.net/jfina...
刚才又测试了一下,业务层再抛一次异常给 控制层,事务确实回滚了,但是也发现了一个问题,如果 业务层方法既要抛异常,又有返回值的时候,事务就依然不会回滚,代码如下:
public class TestTxService {
public final static TestTxService me= Duang.duang(TestTxService.class);
@SuppressWarnings("finally")
@Before(Tx.class)
public String entry(String str) throws Exception {
String s=null;
try {
me.addA(); //想在这里就回滚,然而实际情况并没有回滚
s="success";
} catch (Exception e) {
//System.out.println("service异常:"+e.getMessage());
s="service异常:"+e.getMessage();
throw e;
} finally {
return s; //finally这里如果加了return,事务依然不会回滚
}
}

@Before(Tx.class)
public String addA() throws Exception {
TestA a= new TestA();
a.setName("bn000");
a.save();
addB(null);
return a.getName();

}

public boolean addB(String str) throws Exception {
TestB b= new TestB();
b.setName("t0t");
b.save();
TestB c= new TestB();
//if(str==null)
// throw new Exception("异常了");
c.setName("tt0000000666666"); //这个字段长度太长,报MySQL异常
return c.save();
}


}

@lcg0211
@JFinal 你好,想跟你请教个问题:JFinal一般的方式是 在控制层使用Duang,然后在控制层try,能完...
多谢解答
@lcg0211
@JFinal 你好,想跟你请教个问题:JFinal一般的方式是 在控制层使用Duang,然后在控制层try,能完...
支持,现在项目就在使用,极速开发的利器!顶顶顶
@JFinal
JFinal 2.1 将带给大家超过60项增强与改进,此次升级核心目的,一是全面解救传统SSH开发者,强力推动这些...

没有更多内容

加载失败,请刷新页面

返回顶部
顶部