C# 我可以将错误处理添加到现有的分部类吗?

C# 我可以将错误处理添加到现有的分部类吗?,c#,error-handling,C#,Error Handling,我有一个现有的分部类,它没有错误处理(任何错误都会简单地抛出到使用代码中) 在下面的示例中,我想将错误管理添加到MyClass,以便为消费类提供更好的信息。(出于其他原因,我已经将Helper部分类添加到MyClass) 如果可能的话,我不知道如何使用错误管理(捕获、转换为类错误属性等)扩展分部类 例如: partial class MyClass { static void MyMethod() { throw new Exception("An error f

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

在下面的示例中,我想将错误管理添加到
MyClass
,以便为消费类提供更好的信息。(出于其他原因,我已经将
Helper
部分类添加到
MyClass

如果可能的话,我不知道如何使用错误管理(捕获、转换为类错误属性等)扩展分部类

例如:

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

    void MyTest()
    {
        MyMethod();
    }
}
在这里,当调用
MyTest.MyMethod()
时,会引发一个未处理的异常

理想情况下,我将能够向
MyClass
添加一个部分扩展,该扩展将捕获并管理类中的此类错误。很明显,我可以把课程打包并在那里管理错误,也许这是最好的/唯一的方法,但我想听听大家的意见


注意:假设我对
MyClass
没有控制权,但实际上,在这个例子中,它是由
Swagger-CodeGen
生成的代码,所以我有点这样做,但我不想像现在这样打断代码生成。

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

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

其他方法可能有点疯狂,比如


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

我不确定自己是否理解这个问题的前提。如果你要添加一个分部类,你不能只添加你想要的吗?你试过什么?与您的期望相比,什么不起作用?@gilliduck是的,当然我可以添加到类中,但是我不能,比如说,拦截来自原始(部分)类(我知道)中的方法的异常抛出。而且,是的,我当然尝试过搜索网络等等;我来问你是因为我还没有找到解决办法。谢谢。你对这个问题的理解是正确的。这正是我所期望的,但我希望得到比我更好的C#编码器的输入。我已经阅读了一些可以提供类错误处理的第三方类包装器,但我不想添加TP引用。似乎应该有一个比包装器/装饰器更好的解决方案,但感谢您的建议!我可能得试试。不幸的是,“在使用代码中处理异常”是不可行的,因为分部类中的方法不会像常规类(在单个.cs文件中)中的方法那样将异常传递给调用方,这似乎是一个设计缺陷。