有人知道一个开源的C++应用程序,带有良好设计/稳健的异常机制,这样我就可以得到一些灵感吗? 我看到的大多数代码/示例都会做出可疑的事情,例如:
- 抛出带有消息字符串作为参数的对象。 这似乎是错误的,因为它将异常标记为致命的,一个错误消息可以在更高层次上显示给用户,留下很少的空间供客户端代码尝试处理异常。 即使异常是致命的,像不同的语言环境一样,似乎在抛出点格式化消息是一个坏主意。
- 使用大量从基本异常类派生的不同异常类。 为每个可能出错的事情(打开文件、读取文件、写入文件、创建线程等)引入一个新的类/类型仅仅是感觉上不对。 在最高级别捕获所有未处理的异常时,使用基本类型会丢失显示有意义的错误消息所需的类型信息。
- 为每个组件/库使用从基本异常类派生的一个异常类,并将其作为参数赋予一个错误代码以指示确切的错误。 使用基本类型捕获会导致模棱两可。(我们捕获了谁的错误代码“3”?)...