Procesamiento de excepciones

Cuando se ejecuta un programa, puede producirse una serie de condiciones anormales y errores llamados "excepciones". Estas pueden incluir quedarse sin memoria, errores de asignación de recursos y fracaso para buscar archivos.

La biblioteca Microsoft Foundation Class utiliza un esquema de control de excepciones que es modelado estrechamente uno propuesto por el Comité de estándares ANSI para C++. Debe configurar un controlador de excepción antes de llamar a una función puede encontrarse con una situación anormal. Si la función detecta una condición anormal, produce una excepción y control se pasa al controlador de excepciones.

Varias macros incluidas en la biblioteca Microsoft Foundation Class establecerá los controladores de excepciones. Un número de otras funciones globales ayuda a producir excepciones especializados y terminar programas, si es necesario. Estas macros y funciones globales se dividen en las siguientes categorías:

Para obtener más detalles y ejemplos, vea el artículo excepciones en la Guía del programador de Visual C++.

Macros de excepción

INTENTE Designa un bloque de código para procesamiento de excepciones.
CAPTURAS Designa un bloque de código para capturar una excepción en el bloque TRY anterior.
CATCH_ALL Designa un bloque de código para capturar todas las excepciones en el bloque TRY anterior.
AND_CATCH Designa un bloque de código para la captura de los tipos de excepción adicional desde el bloque TRY anterior.
AND_CATCH_ALL Designa un bloque de código para la captura de todos los demás tipos adicional de la excepción en un bloque TRY anterior.
END_CATCH Termina el último bloque de código CATCH o AND_CATCH.
END_CATCH_ALL Termina el último bloque de código CATCH_ALL.
TIRO Produce una excepción especificada.
THROW_LAST Inicia la excepción actualmente manejada para el siguiente controlador externo.

Funciones de tirar de excepción

AfxThrowArchiveException Produce una excepción de archivo.
AfxThrowFileException Produce una excepción de archivo.
AfxThrowMemoryException Produce una excepción de memoria.
AfxThrowNotSupportedException Produce una excepción no compatible.
AfxThrowResourceException Produce una excepción de recurso no encuentra Windows.
AfxThrowUserException Produce una excepción en la acción de una programa iniciado por el usuario.

MFC proporciona dos funciones arrojando excepción específicamente para excepciones de OLE:

Funciones de excepción OLE

AfxThrowOleDispatchException Produce una excepción dentro de una función de automatización OLE.
AfxThrowOleException Produce una excepción de OLE.

Para admitir excepciones de base de datos, las clases de base de datos proporcionan dos clases de excepción CDBException y CDaoExceptiony funciones globales para apoyar los tipos de excepción:

Funciones de excepción de DAO

AfxThrowDAOException Produce un CDaoException de su propio código.
AfxThrowDBException Produce un CDBException de su propio código.

MFC proporciona la siguiente función de terminación:

Funciones de terminación

AfxAbort Llamado a terminar una aplicación cuando un error fatal se produce.

Vea tambié&nnbsp;CException

Index