c++ - 抛出一个 boost::shared_ptr< customException>

标签 c++ exception shared-ptr stack-unwinding

有没有下面的陷阱;

 if (someCondition)
   throw boost::shared_ptr<SomeException>( new SomeException( "foo!" ) );

 ...

 catch( const boost::shared_ptr<SomeException>& expRef )
 {
 }

最佳答案

你应该避免通过指针抛出,而更喜欢 throwing by valuecatching by (const) reference .

使用智能指针是在使用指针时简化资源管理的一种方法,但如果您可以完全避免使用指针,这样做会更简单。只需抛出一个值即可。

关于c++ - 抛出一个 boost::shared_ptr< customException>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5222606/

相关文章:

c++ - WM_DRAWITEM 的图纸 ListView 项

Python 3 : Why does splitlines() on a str results in TypeError?(但并非总是如此)

c++ - 卸载时XAudio2访问冲突异常

java - 生成 Javaassist 运行时 POJO 时出现异常

c++ - 如果用户在int中输入了char,我该如何使用输入?

c++ - 如何成功地将功能对象(或 lambda)传递给轨迹栏回调的第二个参数(void*)?

c++ - 通过引用为 boost::shared_ptr 创建别名

c++ - 将相同共享指针的拷贝存储在不同的 vector 中是一种好习惯吗?

c++ - 将 boost::shared_ptr 与重载下标运算符 ([]) 的类一起使用

未找到 C++ #include <atlbase.h>