c# - 使用属性处理类库中的异常

标签 c# error-handling

在类库中,我正在尝试使用类库中的属性处理异常。有没有AOP(PostSharp)的方法吗?

[AttributeUsage(AttributeTargets.Method, AllowMultiple = false, Inherited = false)]
public class HandleError : Attribute
{

    public void OnException(){
    try {

    }
    catch (Exception) {

    }}
}

我想装饰这样的属性。
[HandleError]
public void SampleMethod()
{
  throw new Exception();
}

最佳答案

简而言之,你不容易。您可以使用其他库(for example Spring.NET)中的AOP。唯一的区别是Spring.NET在运行时运行,而Postsharp在编译时运行。

您甚至可以使用Fody在编译时进行一些代码重写,例如PostSharp。

请注意,如果您只是想对异常进行一些记录并且不需要从堆栈中删除异常(您不想“吃掉”它或对其进行更改),则可以简单地添加一个FirstChanceException处理程序。请注意,这将大大降低所有速度,因为您将需要使用反射来检查属性的存在。而且,如果您想走栈,它会变得更慢! (更复杂)

关于c# - 使用属性处理类库中的异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36149577/

相关文章:

c# - 调整网络摄像头亮度(曝光/增益)C#

java - java中抛出异常重构

excel - VBA选择。查找返回偏移量单元格

c# - 如何隐藏窗口窗体中的所有面板?

c# - 缺少命名空间或程序集引用时出错

c# - 如何使用正则表达式和/或 linq 解析游戏日志?

vba - On错误不适用于IE自动化

c# - 业务对象变化时自动刷新UI

java - 不幸的是,应用程序已停止,Android

file-upload - 没有上传整个文件的IIS7.5中的自定义404.13错误