使用动态代理处理异常
来源:互联网 发布:ppt怎么画网络拓扑图 编辑:程序博客网 时间:2024/06/15 23:34
目前遇到一个需要try catch的问题,但我又不喜欢用try catch,所以想到了说可以用动态代理,通过切面代码来写,这样可以不写try-catch,为此总结了如下的知识点:
大概是说把异常处理放在切面里面统一进行不直接写在业务代码里面
就像下面这样
原来是这样的
function xxx(){
try{
会出异常的代码;
}catch(e){
异常处理;
}
}
每个函数里面都套上try-catch好烦啊
所以直接写成这样:
function xxx() throws exceptions{
会出异常的代码;
}
然后在某个地方配置
拦截所有对这个函数的调用
别的代码仍然以为调用的是xxx函数
实际上可能调用的是下面的aop函数
function aop(){
try{
return xxx();
}catch(e){
异常处理;
}
}
延伸一下的话,别的函数调用也可以被拦截
然后由aop函数统一处理
这样对于同一类的异常处理就可以用一套配置处理了
省去了每次都处理的麻烦
另一点,这里的拦截对调用方和被调用方都是透明的
这也就意味着他们不知道被拦截处理了
实际上函数调用就是在一个对象里面调用另一个对象的方法
实际上也就是向另一个对象发送消息
假设这个消息最初从界面产生(比如用户点击了一个按钮)
发送到了控制器层
控制器发送到了服务层
服务发送到了持久化层
持久化读取数据传回给服务层
服务层组织数据传回控制器层
控制器层排版数据返回视图给用户
消息在业务逻辑的管道中传输
而刚才的拦截就好像将管道切开一个面
用一段管道塞入到这里面
而切面前后的逻辑不知道这里多赛了一段管子
这种思想就是面向切面编程
好处是
在不影响原有业务逻辑的情况下
插入新的处理
0 0
- 使用动态代理处理异常
- spring动态代理异常处理
- Java动态代理的异常处理问题
- JDK 动态代理对异常的处理及InvocationTargetException异常解析
- python3爬虫(8):异常处理以及代理的使用
- java动态代理处理事务
- 使用动态代理,提高工作效率
- Spring动态代理使用
- 为何使用动态代理
- 动态代理使用
- 动态代理的使用
- Java动态代理使用
- 使用 JDK 动态代理
- 使用AspectCore动态代理
- cglib动态代理使用
- java动态代理使用
- 动态sql语句 异常处理
- 使用 Application_Error 处理异常
- react 中的this
- getParameter方法中文显示问号解决方法
- git温故而知新
- JAVA之单例模式
- Android自定义View的实现方法,带你一步步深入了解View(四)
- 使用动态代理处理异常
- git 错误
- 【OpenCV学习笔记】十三、ROI与mask掩码
- DBunit
- 【PMP】Head First PMP 学习笔记 第十二章 采购管理
- 学习入门small框架
- java synchronized的作用
- SpringBoot项目中整合dubbo/zookeeper实战
- VS2013 scanf_s引起 msvcr110d.dll xxxxxx处有未经处理的异常