AOP错误捕捉

-一个大坑 2019-09-12 03:43:35
网上找了一个aop,准备改下自己用

//执行方法前
if (this._interceptorObject.MethodExecuting(this._interceptorObject, call.MethodBase.Name, call.Args))
{
try
{
//执行方法
retMsg = _nextSink.SyncProcessMessage(msg);
}
catch(Exception ex)
{
调试测试,方法报错没有进入到这里
}
//接受返回结果
var returnValue = ((IMethodReturnMessage)retMsg).ReturnValue;
//执行方法后
this._interceptorObject.MethodExecuted(this._interceptorObject, call.MethodBase.Name, call.Args, returnValue);
}
...全文
147 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
wanghui0380 2019-09-12
  • 打赏
  • 举报
回复
引用 4 楼 github_36000833 的回复:
‘网上的代码’有一些问题。_nextSink调用如果抛出异常,异常信息将反应在那个retMsg中。 retMsg = _nextSink.SyncProcessMessage(msg); 方法栈异常仅限于SecurityException,可能是CLR在执行方法调用,权限检查不符条件而抛出,而不会是方法本身抛出的。
不是网上有问题,你让我代理了,那么你觉着出错了,是你知道,还是我知道。当然是我知道,我是代理人,是我办的事情 ps:别惊讶,但凡这类都这样,比如微软自己的路由,有多少在联调的时候说,“这不是我的问题,你都没进我的方法”,why?路由,参数检查是微软代理的,他说错了,直接就扔500或者404了,哪还轮到你的代码
wanghui0380 2019-09-12
  • 打赏
  • 举报
回复
嘿嘿,我用了好几篇帖子说了“AOP注入“不好调试的,无论是静态织入,还是动态代理的,他都不好调试 所以正常玩法是你先别注入,先单独把”待注入的代码“使用DDD单元测试,全通过了,再改成注入的。 不然有得搞,毕竟是注入的,是代理的 。代码本不是你的”代码“
-一个大坑 2019-09-12
  • 打赏
  • 举报
回复
mvc的错误已经有了 services.AddMvc(option => { option.Filters.Add(new GlobalExceptionFilter()); //錯誤捕捉 });
-一个大坑 2019-09-12
  • 打赏
  • 举报
回复
引用 7 楼 正怒月神 的回复:
core我不清楚,但是asp.net mvc有ExceptionFilterAttribute可以拦截啊。 如果不是要用到第三方的扩展方法, 那我觉得就够用了。 https://blog.csdn.net/hanjun0612/article/details/50913485
我job用,没有ExceptionFilterAttribute这个特性
正怒月神 版主 2019-09-12
  • 打赏
  • 举报
回复
core我不清楚,但是asp.net mvc有ExceptionFilterAttribute可以拦截啊。 如果不是要用到第三方的扩展方法, 那我觉得就够用了。 https://blog.csdn.net/hanjun0612/article/details/50913485
江湖评谈 2019-09-12
  • 打赏
  • 举报
回复
AOP 不论 asp.net mvc 还是 core mvc 都自带的有啊 你还需要自己下载吗? 蛋疼
github_36000833 2019-09-12
  • 打赏
  • 举报
回复
类似: IMessage retMsg = new ReturnMessage(new Exception("Hey!"), call);
github_36000833 2019-09-12
  • 打赏
  • 举报
回复
‘网上的代码’有一些问题。_nextSink调用如果抛出异常,异常信息将反应在那个retMsg中。 retMsg = _nextSink.SyncProcessMessage(msg); 方法栈异常仅限于SecurityException,可能是CLR在执行方法调用,权限检查不符条件而抛出,而不会是方法本身抛出的。
stherix 2019-09-12
  • 打赏
  • 举报
回复
nuget上AOP框架太多了 发现有bug就换一个啊 如果想简单就用那些流行的重量级AOP框架 要轻量的就可以慢慢试
  • 打赏
  • 举报
回复
看上去很高大上
¿?¿? 2019-09-12
  • 打赏
  • 举报
回复
加油

62,074

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧