代码之家  ›  专栏  ›  技术社区  ›  SteveCinq

我可以向现有的分部类添加错误处理吗?

  •  1
  • SteveCinq  · 技术社区  · 7 年前

    我有一个现有的分部类,它没有错误处理(任何错误都被简单地抛出到消费代码中)。

    在下面的示例中,我想将错误管理添加到 MyClass 为消费阶层提供更好的信息。(我已经添加了一个 Helper 部分类到 类名 其他原因)。

    例子:

    partial class MyClass
    {
        static void MyMethod()
        {
            throw new Exception("An error from MyClass.MyMethod");
        }
    
        void MyTest()
        {
            MyMethod();
        }
    }
    

    在这儿,什么时候 MyTest.MyMethod() 调用时,将引发未处理的异常。

    理想情况下,我可以在 类名 它在类中捕获和管理此类错误。显然,我可以包装类并在那里处理错误,也许这是最好的/唯一的方法,但我想征求意见。

    实际上,在这个例子中,它是由 Swagger CodeGen

    2 回复  |  直到 7 年前
        1
  •  1
  •   Jonathon K    7 年前

    如果我理解的话,您是在问您是否可以通过在第二个分部类fie中添加一些内容来操纵方法调用/控制流,而不必对第一个文件进行任何修改。据我所知,您不能从分部类操作现有的方法或控制流。分部类只允许将定义拆分为多个文件。我相信在不修改原始方法的情况下,添加错误处理的唯一方法是调整或包装(如果它们碰巧是虚拟的,则继承)。

        2
  •  1
  •   Vladimir P.    7 年前

    我认为最好的解决方案是继承和\或编写类的包装器。

    https://doc.postsharp.net/method-decorator

    https://www.codeproject.com/Articles/16359/%2FArticles%2F16359%2FMethodLogger-Hook-into-method-calls-in-NET-binarie

    不过,在使用代码时处理异常可能会更好。