第19.10章:De-fragmenting C++

English

在你写下下一个 throw 之前,先看这个

本章论证过:遗留异常是机制的问题,不是使用它的人的问题。这个论证并不新鲜:Herb Sutter 在 2019 年就讲过,而那场演讲正是本章所教一切的发源。演讲是 De-fragmenting C++: Making Exceptions and RTTI More Affordable and Usable,值得花那一小时,理由有两个:它从另一侧展示了同样的测量(二进制体积、一次抛出的代价),并给出了后来成为你从 第3.16章 起一直在用的 throws 通道的那套设计。

那场演讲

按演讲提出的顺序,值得留意的几点:

看完之后

带着演讲留下的问题回到本章,因为这些页面会具体回答它们:

本书其余部分处处使用那场演讲提出的机制,无一例外。第20章 就是回报:它讲的正是这套机制为何重要,因为那一章讲的是在别的什么都行不通的目标上运行。