OnExceptionAspect和异步方法

时间:2014-05-28 02:11:33

标签: postsharp

我通过AllowStateMachine = true属性在OnMethodBoundary方面基类上看到了PostSharp has now introduced support for async methods

我有两个相关的问题:

  1. 可以在OnExceptionAspect上设置此属性,还是应该更改我的方面以扩展OnMethodBoundaryAspect?

  2. OnExceptionAspect和OnMethodBoundaryAspect有什么区别?我应该只使用OnMethodBoundary吗?

1 个答案:

答案 0 :(得分:2)

  1. 状态机目前仅受OnMethodBoundaryAspect支持,因此您需要从该类派生。

  2. 当您需要以不同方式处理不同类型的异常时,
  3. OnExceptionAspect会更方便。您可以在OnExceptionAspect.GetExceptionType()方法或OnExceptionAspectConfiguration.ExceptionType属性中指定要捕获的异常类型。

    OnMethodBoundaryAspect允许您挂钩其他方法边界,例如进入和退出,但它总是捕获catch块中的基类Exception类型。