在哪里/如何存储或处理大量自定义异常?

sil*_*lla 7 .net c# exception

让我们说我想做一些自定义异常.而且我想要更多.我可以为每个新的异常创建一个新类,但还有另一种方法吗?如果我必须创建一个新的类,在哪里存储它们?它只是在项目的根文件夹中看起来不那么好.

啊,还有一个问题:如果一些异常是相同的,我在做什么,只是异常的名称正在改变一点点?让我们说例外A看起来像这样:

    [Serializable()]
    public class ExceptionA: Exception, ISerializable
    {
        public ExceptionA() : base() { }
        public ExceptionA(string message) : base(message) { }
        public ExceptionA(string message, System.Exception inner) : base(message, inner) { }
        public ExceptionA(SerializationInfo info, StreamingContext context) : base(info, context) { }
    }
}
Run Code Online (Sandbox Code Playgroud)

另一个是相同的,只是另一个名字:

    [Serializable()]
    public class ExceptionB: Exception, ISerializable
    {
        public ExceptionB() : base() { }
        public ExceptionB(string message) : base(message) { }
        public ExceptionB(string message, System.Exception inner) : base(message, inner) { }
        public ExceptionB(SerializationInfo info, StreamingContext context) : base(info, context) { }
    }
}
Run Code Online (Sandbox Code Playgroud)

等等.我是否真的必须始终创建一个新类并粘贴相同的代码?有什么建议?

Ode*_*ded 9

我可以为每个新的异常创建一个新类,但还有另一种方法吗?

不,没有别的办法.如果要创建新的异常类型,则需要一个新类.

在哪里存放?

在所有需要使用它们的代码都可访问的位置.

如果一些例外是相同的,我在做什么,只是异常的名称正在改变一点点?

是的,仍然需要创建一个新类 - 尽管您可以从现有的异常类派生新类.

  • @silla - 作为解决方案文件夹项目,它们不会被编译.他们需要成为项目的一部分 - 如果你有一个"核心"或"基础设施"项目,那将是一个好地方.如果您只有一个项目,只需添加一个文件夹即可. (3认同)