功能:Service中自定义异常信息通知前端页面
思路:
1.在Service层报异常后,会被Chain动作链配置的error捕获,默认只打印错误日志
2.自定义一个动作链MyFailProcessor,继承默认的FailProcessor
3.拿到自定义的异常信息
4.将数据与视图绑定并写到“返回流”
目的:隐藏堆栈什么的各种信息,只给出用户业务方面的提示
(各位前辈们请帮忙看看,这个思路或者代码有什么问题,或者有其他更规范更好的思路)
例如我的一个页面有很多数据要返回,其中某个数据中异常了,导致所有的数据不能返回?
使用 try-catch ?
还有个疑问就是,在代码中throw居然不需要抛出,而且引用也不强制处理。。。
代码:
public class MyFailProcessor extends FailProcessor {
protected Log log = Logs.get();
@Override
public void process(ActionContext ac) throws Throwable {
log.debug("==========进入动作链异常捕捉===========");
// 拿到错误信息
String msg = ac.getError().getMessage();
// 拿到视图解析器
UTF8JsonView view = new UTF8JsonView();
//数据视图绑定
view.render(ac.getRequest(), ac.getResponse(), msg);
super.process(ac);
}
}
感激不尽!!!