sig*_*gil 8 c++ exception-handling base-class
我正在使用Stroustrup的C++编程语言第4版进行练习.其中一项任务是这样制定的:
考虑使用类Exception作为用作异常的所有类的基础.它应该是什么样的?该如何使用?这有什么用呢?要求使用这样的课程可能会有什么缺点?
答案看起来很像std::exception,除了缺点部分 - 我能想象的唯一一个__vptr通常被认为可以忽略不计的成本.我在这里错过了什么?
小智 1
缺点是,如果您尝试捕获位于继承树底部的异常,您将捕获从该异常派生的所有异常,其中一些异常可能表明与您预期的情况非常不同。
更糟糕的是,开发人员使用了很多可能引发异常的函数,并且不知道其中一些函数的含义,可能会简单地捕获基类 Exception,并在遇到错误时仅返回一个不特定的 Exception 实例,这使得开发变得困难调试代码,并且可能仅仅因为一个容易修复的异常而导致整个程序失败,但该异常不应导致任何问题。