我正在处理一个问题,我有很多iterfaces,他们的实现都是统一创建的。这些类包含一些在常规基础上抛出异常的方法,我想围绕这些类创建一个动态代理,这样我就可以捕获方法中出现的所有异常,并在其他地方处理它们。
当我在玩Unity时,我想知道是否可以使用Unity Interception来完成这样的事情。
即。创建一个TransparentProxyInterceptor并围绕这些方法的invocatino包装一个try-catch块。 这是可能的,还是我走向了错误的方向? 感谢
答案 0 :(得分:6)
是的,Unity拦截(AOP)是处理异常处理的绝佳方法。您可以添加各种行为,如:
您的呼叫处理程序将类似于:
public override IMethodReturn Invoke(IMethodInvocation input, GetNextHandlerDelegate getNext)
{
IMethodReturn result = getNext()(input, getNext);
if (result.Exception != null)
{
// do something
}
return result;
}