首页
App
&
Coffee
文档
项目
分享
反馈
俱乐部
登录
注册
JFinal的AOP能否实现异常统一处理
小鑫要宵夜
2016-08-31 09:12
如题,想用AOP实现友好的异常页面跳转以及异常的监控,是否可行?
项目:
JFinal
4
1
评论区
JFinal
2016-08-31 11:09
很多人都在这么用,必然是可以的,利用一个全局拦截器,将 inv.invoke() 包裹在 try catch 之中,并处理好 catch 即可。
一般来说只要在 catch 中使用 inv.getController().render(...) 或 redirect(...) 就可以控制跳转了,监控的话,可将异常写日志,也可以是将异常发给专用的监控模块
回复
Romeo
2016-08-31 11:40
不只是Jfinal哦,好多框架都是这么做的。
回复
小鑫要宵夜
2016-08-31 16:59
@JFinal
好的,感谢!
回复
小鑫要宵夜
2016-08-31 17:00
@Romeo
有点疑问,如果在controller里已经try catch了,拦截器中还能否获取到异常?
回复
Romeo
2016-08-31 17:09
@小鑫要宵夜
不能,拦截器里一般设置一些通用的异常处理,controller可以设置特定的
回复
小鑫要宵夜
2016-09-01 14:59
@Romeo
好的,感谢回答!
回复
JFinal
2016-09-01 15:12
@小鑫要宵夜
如果 controller 里面 try catch,只要再接着向上抛出被捕获的异常,拦截器仍然可以收到,如果吃掉异常不抛出来,上层就接收不到了
回复
绝望的八皮
2016-09-01 15:35
以前做过一个类似的统一异常处理,可以参考一下
https://github.com/b1412/jfinal-ext/blob/master/src/main/java/com/jfinal/ext/interceptor/ExceptionInterceptor.java
回复
小鑫要宵夜
2016-09-07 09:52
@绝望的八皮
@JFinal
谢谢!
回复
fansunion
2018-10-10 17:44
@JFinal
我反馈的时候,答复过。觉得有问题,异常上下文是 当前controller,直接render(error/500.html) 页面路径会不对吧。当前Controller默认路径可能是“_view/brand/”,而500页面在error目录。
回复
livem
2020-08-18 17:35
@JFinal
学习了
回复
发送
我要反馈
热门反馈
扫码入社
一般来说只要在 catch 中使用 inv.getController().render(...) 或 redirect(...) 就可以控制跳转了,监控的话,可将异常写日志,也可以是将异常发给专用的监控模块