Como dice el título, estamos buscando una forma de detectar todas las excepciones de un fragmento de código C++ y envolverlo en un dll. De esta forma podemos proteger de la aplicación que usa este dll, de cualquier error que ocurra en este dll.¿Cómo crear un contenedor C++ Dll que capte todas las excepciones?
Sin embargo, esto no parece posible con C++ en Windows.
Ejemplo:
void function()
{
try
{
std::list<int>::iterator fd_it;
fd_it++;
} catch(...) {}
}
La excepción que se produce no es atrapado por el estándar C++ tratar/bloque catch, ni por cualquier función traductor SEH establecido por _set_se_translator()
. En cambio, el DLL se bloquea y el programa que usa el DLL se cancela. Compilamos con Visual C++ 2005, con la opción/SHa. ¿Alguien sabe si es posible en C++/Win32 detectar este tipo de problemas y crear un contenedor DLL sólido?
Igual que [C++ detecta todas las excepciones] (http://stackoverflow.com/questions/315948/c-catching-all-exceptions) – lsalamon