我有以下代码
try
{
// Vector creation in shared memory. The shm must exist.
m_pxShm = new managed_shared_memory(open_only, pcShmName);
m_pxShm->construct<T>(pcVecName)[iSize](); // THROW EXCEPTION <==
m_xVectorPair = m_pxShm->find<T>(pcVecName);
if (0 == m_xVectorPair.first)
{
throw std::exception();
}
}
catch (std::exception)
{
throw SharedMemoryVectorBadAllocException();
}
SharedMemoryVectorBadAllocException
使用std::exception
作为基类。当我运行这段代码时,带有'construct'方法的行抛出一个异常(因为我创建了一个比共享内存大的向量)。但是没有处理抛出的异常,应用程序崩溃了。即使我逐行调试它,catch语句也不会处理异常。我试图使用catch参数std::exception
,interprocess_exception,...等等,但没有成功。我该如何处理异常?我正在使用Visual Studio 2010。