STLdoc
STLdocumentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
Public Member Functions | Public Attributes | Private Member Functions | List of all members
Concurrency::details::_ExceptionHolder Struct Reference

#include <ppltasks.h>

Public Member Functions

 _ExceptionHolder (const std::exception_ptr &_E, const _TaskCreationCallstack &_stackTrace)
 
 __declspec (noinline)~_ExceptionHolder()
 
void _RethrowUserException ()
 

Public Attributes

atomic_long _M_exceptionObserved
 
std::exception_ptr _M_stdException
 
_TaskCreationCallstack _M_stackTrace
 

Private Member Functions

void ReportUnhandledError ()
 

Constructor & Destructor Documentation

Concurrency::details::_ExceptionHolder::_ExceptionHolder ( const std::exception_ptr &  _E,
const _TaskCreationCallstack _stackTrace 
)
inlineexplicit
891  :
893 #if defined (__cplusplus_winrt)
894  , _M_winRTException(nullptr)
895 #endif /* defined (__cplusplus_winrt) */
896  {
897  }
_TaskCreationCallstack _M_stackTrace
Definition: ppltasks.h:948
atomic_long _M_exceptionObserved
Definition: ppltasks.h:936
std::exception_ptr _M_stdException
Definition: ppltasks.h:939

Member Function Documentation

Concurrency::details::_ExceptionHolder::__declspec ( noinline  )
inline
908  {
909  if (_M_exceptionObserved == 0)
910  {
911  // If you are trapped here, it means an exception thrown in task chain didn't get handled.
912  // Please add task-based continuation to handle all exceptions coming from tasks.
913  // this->_M_stackTrace keeps the creation callstack of the task generates this exception.
915  }
916  }
#define _REPORT_PPLTASK_UNOBSERVED_EXCEPTION()
Definition: pplconcrt.h:81
atomic_long _M_exceptionObserved
Definition: ppltasks.h:936
void Concurrency::details::_ExceptionHolder::_RethrowUserException ( )
inline
919  {
920  if (_M_exceptionObserved == 0)
921  {
923  }
924 
925 #if defined (__cplusplus_winrt)
926  if (_M_winRTException != nullptr)
927  {
928  throw _M_winRTException;
929  }
930 #endif /* defined (__cplusplus_winrt) */
932  }
_T atomic_exchange(std::atomic< _T > &_Target, _T _Value)
Definition: pplinterface.h:154
atomic_long _M_exceptionObserved
Definition: ppltasks.h:936
void rethrow_exception(_In_ exception_ptr _P)
Definition: exception:532
std::exception_ptr _M_stdException
Definition: ppltasks.h:939
void Concurrency::details::_ExceptionHolder::ReportUnhandledError ( )
inlineprivate
882  {
883 #if defined (__cplusplus_winrt)
884  if (_M_winRTException != nullptr)
885  {
887  }
888 #endif /* defined (__cplusplus_winrt) */
889  }
void __cdecl ReportUnhandledError(::Platform::Exception^)

Member Data Documentation

atomic_long Concurrency::details::_ExceptionHolder::_M_exceptionObserved
_TaskCreationCallstack Concurrency::details::_ExceptionHolder::_M_stackTrace
std::exception_ptr Concurrency::details::_ExceptionHolder::_M_stdException

The documentation for this struct was generated from the following file: