6

我在想是否可以使用 Attribute 进行异常处理,而不是在每个方法中都写“try...catch”。

例如,现在,我的每个方法都是这样的:

public void DoSomething()
{
    try
    {
        // do something
    }
    catch (Exception ex)
    {
        // exception handling rules, always the same.
        throw;
    }
}

我想:

[HandleException]
public void DoSomething()
{
    // do something
}

可能吗?

4

3 回答 3

3

这可以通过 AOP(面向方面​​的编程)来完成。这样做的框架之一是 PostSharp。查看示例http://www.sharpcrafters.com/solutions/exception

于 2012-12-27T07:45:32.187 回答
0

Also, you can write your own MSBuild Task. Here you can find an opensource project. During compile time it injects INotifyPropertyChanged supporting code in property setters using Mono.Cecil lib.

于 2012-12-27T07:50:34.760 回答
0

你可以用 Fody 做到这一点

https://github.com/Fody/Fody

如果你想检查它,有一个类似的插件可以处理异步代码的异常。

https://github.com/Fody/AsyncErrorHandler

这是一个教程。

https://michielsioen.be/2017-10-21-il-weaving/

https://michielsioen.be/2017-12-28-il-weaving-pt2/

于 2020-06-03T18:05:07.317 回答