gpt4 book ai didi

c# - 自定义错误处理和日志

转载 作者:行者123 更新时间:2023-12-03 08:36:05 25 4
gpt4 key购买 nike

如您所知,处理错误的基本方法是 try ... catch ... finally 结构。

如果我们想处理每个错误并将其保存到文件中,我们必须在 catch 部分添加一行以保存错误详细信息。

问题是:
是否有任何覆盖捕获事件的解决方案?

换句话说,考虑 try ... catch ... finally 结构类似于其他应用程序事件并覆盖 catch 部分,运行我们的自定义代码 next 运行 catch 部分代码。

是否可以?

最佳答案

我相信实现这类问题的最佳方法之一是使用面向方面的编程。

事实上,你想要的东西必须:

  • 处理异常。
  • 记录异常。

  • 有一个称为 IL 编织的概念,它基于编译后代码注入(inject),可简化面向方面的编程。

    那就是你可以在执行方法和属性之前和之后做一些事情,归根结底,这是“处理任何程序集成员中抛出的任何异常”,不是吗?

    例如,我有一些使用 PostSharp 的经验,它实现了 IL 编织,并且使用起来非常容易:它是基于属性的。

    您需要实现一个派生一些 PostSharp 基本属性的自定义属性,并且它可以覆盖将在执行放置属性的方法/属性之前和之后调用的某些方法。

    异常处理可以实现为“HandleExceptionAttribute”并记录“LogAttribute”(这只是一个示例!)。

    了解有关 PostSharp 的更多信息(如果我没记错的话,它有一个免费的社区版):
  • http://www.sharpcrafters.com/

  • 还有一些“操作方法”:
  • http://ayende.com/Blog/archive/2008/10/09/first-steps-with-post-sharp.aspx
  • 关于c# - 自定义错误处理和日志,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5791903/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com