gpt4 book ai didi

exception - 开发库时断言与异常

转载 作者:行者123 更新时间:2023-12-05 00:40:21 25 4
gpt4 key购买 nike

我正在开发一个库,以便在其他库或最终产品中进一步使用。假设用户以错误的方式使用库 - 将不适当的值传递给公共(public)函数,以错误的顺序调用函数等。

在这种情况下,我可能会抛出异常,但这些通常是为最终产品设计的,必须适当处理,而这里我们有一个开发人员错误,他没有正确阅读文档。另一方面,他或她是我的库的用户,因此断言可能是错误的方法(想象一下在您从未编写过的代码中触发的断言并希望它能够正常工作)。

到目前为止,我只在私有(private)内部函数和方法中使用断言,因此只通知我我在库中的错误。在图书馆用户错误使用的情况下,我总是抛出带有错误描述的异常(并建议如何避免它)。

你认为这是一个正确的方法吗?如果不是,您在开发库时使用哪个经验法则来处理断言和异常?

最佳答案

是的,这是正确的做法。断言可以在私有(private)函数中内部使用。如果客户端使用错误的参数调用公共(public)方法,应该抛出异常。不正确的代码必须立即使程序崩溃,这是修复错误的最佳机会。
对于预期情况(未找到文件、设备未响应等)和调用者错误(如参数值不正确)设置不同的异常类型是个好主意。客户端代码应该捕获预期的异常,不处理意外的异常。当抛出意外异常时,客户端程序崩溃,程序员只需修复错误。

但是,如果您的库是为同一家公司的内部使用而编写的,则可以使用断言来处理私有(private)方法调用错误等公共(public)方法调用错误。但这种方法必须受到严格限制,不应用于外部客户端。

关于exception - 开发库时断言与异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3674962/

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