且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

C++中通过指针捕获异常

更新时间:2023-11-11 12:18:46

推荐的方式是按值抛出,按引用捕获.

您的示例代码抛出一个指针,这是一个坏主意,因为您必须在捕获站点管理内存.

Your example code throws a pointer, which is a bad idea since you would have to manage memory at the catch site.

如果你真的觉得你应该抛出一个指针,使用智能指针,比如 shared_ptr.

If you really feel you should throw a pointer, use a smart pointer such as shared_ptr.

无论如何,Herb Sutter 和 Alexei Alexandrescu 在我转述的他们的 C++ 编码标准一书中很好地解释了这一点.

请参阅 C++ 编码标准:按值抛出,按引用捕获.