C# 异常驱动编程

C# 异常驱动编程,c#,.net,rest,wcf,C#,.net,Rest,Wcf,虽然在微服务和Restful架构中不太流行,但我认为。我们更喜欢通过从ApplicationException派生的自定义异常类来引发优雅的业务异常 有什么机制可以通过编译特性进行自我声明吗 Ex1、Ex2、Ex3是类服务可能引发的业务异常 如果你已经熟悉WCF,希望你已经掌握了。我在WCF的线路上 例外合同 例如: public class BlobChecksumMatchException : ApplicationException { public BlobChecksumMa

虽然在微服务和Restful架构中不太流行,但我认为。我们更喜欢通过从ApplicationException派生的自定义异常类来引发优雅的业务异常

有什么机制可以通过编译特性进行自我声明吗 Ex1、Ex2、Ex3是类服务可能引发的业务异常

如果你已经熟悉WCF,希望你已经掌握了。我在WCF的线路上 例外合同

例如:

public class BlobChecksumMatchException : ApplicationException
{
    public BlobChecksumMatchException(string msg) : base(msg)
    {

    }
}
编辑:
更不用说异常库当然可以出于任何原因抛出,我只是想预先定义业务异常类

在C或.NET中没有这样的内置机制。但是,您有两个解决方案:

1如果该信息供人类使用,您可以使用Andreas Zita指出的信息

2如果需要机器可读的机制,可以声明自定义ThrowsException属性并将其应用于类或方法,然后检索以下内容:


但是请注意,反射代价很高,这取决于您的性能要求,您可能需要为该信息实现一些缓存机制。

不确定您的意思,但xml注释可能会帮助您吗?
class MyBusinessClass
{
  [ThrowsException(typeof(Ex1))]
  [ThrowsException(typeof(Ex2))]
  public void DoSomething() {}
}