Control de excepciones estructurado

Una excepción es un evento que se produce durante la ejecución de un programa y requiere la ejecución de código fuera del flujo normal de control. Hay dos tipos de excepciones: excepciones de hardware y excepciones de software. La CPU inicia excepciones de hardware. Pueden resultar de la ejecución de determinadas secuencias de instrucciones, como la división por cero o un intento de acceder a una dirección de memoria no válida. Las aplicaciones o el sistema operativo inician explícitamente excepciones de software. Por ejemplo, el sistema puede detectar cuándo se especifica un valor de parámetro no válido.

El control estructurado de excepciones es un mecanismo para controlar las excepciones de hardware y software. Por lo tanto, el código controlará las excepciones de hardware y software de forma idéntica. El control estructurado de excepciones permite tener un control completo sobre el control de excepciones, proporciona compatibilidad con los depuradores y se puede usar en todos los lenguajes de programación y máquinas. El control de excepciones vectoriales es una extensión para el control estructurado de excepciones.

El sistema también admite el control de terminación, lo que le permite asegurarse de que cada vez que se ejecuta un cuerpo protegido del código, también se ejecuta un bloque especificado de código de terminación. El código de terminación se ejecuta independientemente de cómo el flujo de control deja el cuerpo protegido. Por ejemplo, un controlador de terminación puede garantizar que se realizan tareas de limpieza incluso si se produce una excepción o algún otro error mientras se ejecuta el cuerpo protegido del código.