NutzCN Logo
问答 捕获异常抛出到前端页面,有没有错误?
发布于 2376天前 作者 疯子 2536 次浏览 复制 上一个帖子 下一个帖子
标签:

功能: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);
	}

}

感激不尽!!!

2 回复

或许有什么方法,可以直接取出当前的默认视图解析器?

不需要再调用super.process(ac);了

添加回复
请先登陆
回到顶部