抛出boost :: shared_ptr <customException>

lur*_*her 1 c++ exception-handling stack-unwinding shared-ptr

以下是否有任何陷阱;

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

 ...

 catch( const boost::shared_ptr<SomeException>& expRef )
 {
 }
Run Code Online (Sandbox Code Playgroud)

Dav*_*eas 6

你应该避免通过指针抛出,而更喜欢按值抛出捕获(const)引用.

使用智能指针是一种在使用指针时简化资源管理的方法,但是如果你可以完全避免使用指针,那么这样做会更简单.只是扔一个值.