c# - 定义可以从工具包 API 中抛出的异常

标签 c# .net api exception

是否存在从工具包 API 中抛出异常的最佳实践或行业标准?

面向用户的方法是否应该在某种类型的 CustomException 中捕获并包装 Exception,以便用户只需要担心 CustomException 的到来在 API 之外?

或者只是让那些冒泡的惯例?

我们关心的是能够记录我们的 API 方法可能抛出的所有可能的异常。 (例如,如果我们的 API 方法调用 Stream.Write() 抛出 4 或 5 个异常,除了其他被调用方法可能抛出的其他异常之外,我们还必须记录所有这些异常。)

我们正在考虑做这样的事情:

public void customerFacingApiMethod(){
   try {
      //api functionality goes here
   } catch (Exception e) {
      throw new CustomException(e);
   }
}

最佳答案

在我看来,让 API 只抛出一种异常类型是个坏主意。不同异常的好处之一是您可以选择捕获不同类型的异常并以不同方式处理它们。将异常包装成单个异常类型会删除该设施。

在适当的地方使用框架提供的异常类型,并在适当的地方为特定情况创建自己的自定义异常类型。最重要的是,确保为每个方法记录它们可能抛出的异常。

关于c# - 定义可以从工具包 API 中抛出的异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1843170/

相关文章:

c# - EF如何生成Proxy类

c# - Fluent Nhibernate 映射字典创建额外表

c# - 是否可以检测两种可能的文本文件编码?

c# - .NET ConcurrentDictionary 初始容量设置为任意质数,而不是 MSDN 示例文档中的预期容量。为什么?

c# - 使用 TreeNode 作为用户设置

c# - MongoDb - 使用 .NET 驱动程序运行 adminCommand (2.4.4)

Java 充气城堡 : Invalid point encoding 0x45

api - Pinterest API v3 OAuth 仍然有效吗?

actionscript-3 - 如何为声音对象编写音频包络(起音时间、淡入)?

android - 如何在 laravel for android 中创建 API?