gpt4 book ai didi

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

转载 作者:太空狗 更新时间:2023-10-29 20:46:24 26 4
gpt4 key购买 nike

是否存在从工具包 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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com