gpt4 book ai didi

language-agnostic - 异常机制的最佳实现是什么?

转载 作者:行者123 更新时间:2023-12-04 07:12:33 25 4
gpt4 key购买 nike

大多数程序语言都有某种异常处理。一些语言有返回码,另一些有 try/catch 或rescue/retry 等,每种语言在大型团体开发工作中的可读性、健壮性和实际有效性方面都有自己的特点。哪一个是最好的,为什么?

最佳答案

我会说这取决于你的问题的性质。不同的问题域可能需要几乎任意的错误消息,而其他琐碎的任务只能在错误时返回 NULL 或 -1。

错误返回代码的问题在于您正在污染/掩盖错误,因为它可以被忽略(有时 API 客户端不知道他们应该检查错误代码)。它从手头的方法中提供(合理)有效的输出。

想象一下,您有一个 API,您在其中请求某个 map 的索引键,将其存储在列表中,然后继续运行。 API 稍后会发送一个回调,然后该方法可能会使用在本例中可能为 -1 的键(错误代码)遍历表。 BOOM,当您在某个数组中索引到 -1 时,应用程序崩溃了,而且这些问题很难确定。这仍然是一个简单的例子,但它说明了错误代码的问题。

另一方面,错误代码比抛出异常更快,您可能希望将它们用于频繁访问的方法调用——如果返回这样的错误代码是合适的。我会说尝试将这些类型的错误代码封装在私有(private)程序集中是完全可以的,因为您没有将这些错误代码暴露给 API 的客户端。永远记住要严格记录这些方法,因为这些应用程序的核弹可以在应用程序中逗留很长时间,因为它们在它关闭之前就被触发了。

就个人而言,我在某种程度上更喜欢两者的混合。我只是为此使用异常 - 异常 - 当程序运行到意外状态并且需要通知某些事情已经超出计划时。我不喜欢在我的代码中编写 try/catch block ,但这完全取决于个人喜好。

关于language-agnostic - 异常机制的最佳实现是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66016/

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