gpt4 book ai didi

C++ 异常与错误代理

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:31:23 25 4
gpt4 key购买 nike

<分区>

我一直是“无异常(exception)”阵营的一员,但并非虔诚地如此。我对使用异常的支持者经常提出的一个论点有疑问。

所以我对 C++ 异常的最大(唯一)提示是代码的不可预测性。我希望能够查看代码(没有任何 IDE,在 VIM 中)并准确了解它在所有情况下的作用。除了异常之外,逻辑流并不明显,因为 throw 和 catch 可以分开许多逻辑层。

支持异常响应的典型计数器是:“是的,这很糟糕。但是嵌套的错误代码更糟糕。”

嗯,是的,但这不是替代方案。

假设你有一个名为 MyErrorProxy 的类,它有一个虚拟句柄 MyXYZError(),如果你知道你的 MyClass 可能会得到一个 XYZ 错误,并且你想在许多逻辑层之外处理它,你将一个指向 MyErrorProxy 的指针传递给它(它可以是一个 mixin、一个接口(interface),还是只是一个集中的错误处理类)?你不想传递指针?好吧,让它成为一个线程安全的单例。这需要更多管道,但它明确并且非常容易跟踪逻辑流。

这就是我长期以来的编码方式。

现在我的问题是:这样做的真正缺点是什么?如果在我离开很久之后你还在维护这段代码,你会生气吗?您真的更喜欢 try(s) 和 catch(es) 而不是这种机制吗?为什么?

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