gpt4 book ai didi

c++ - 为所有异常使用一个基类有什么缺点?

转载 作者:可可西里 更新时间:2023-11-01 17:59:12 33 4
gpt4 key购买 nike

我正在做 Stroustrup 的 C++ 编程语言第 4 版中的练习。其中一项任务是这样制定的:

Consider using a class Exception as the base of all classes used as exceptions. What should it look like? How should it be used? What good might it do? What disadvantages might result from a requirement to use such a class?

答案看起来很像 std::exception,除了缺点部分 - 我唯一能想到的是 __vptr 的成本,这通常被认为可以忽略不计.我在这里缺少什么?

最佳答案

缺点是,如果您 try catch 位于继承树底部的异常,您将捕获从该异常派生的所有异常,其中一些可能指示与您预期的非常不同的事情。

更糟糕的是,一个开发人员使用了很多可能会抛出异常的函数,并且不知道其中一些是什么意思,可能只是简单地捕获基类 Exception,并在遇到错误时返回一个非特定的 Exception 实例,使得调试代码变得困难,并且可能仅仅因为一个不应该引起任何问题的容易修复的异常而导致整个程序失败。

关于c++ - 为所有异常使用一个基类有什么缺点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40663318/

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