Control de excepciones (control de errores)
Las excepciones se pueden iniciar por hardware o software y pueden producirse en modo kernel, así como en el código en modo de usuario. El control de excepciones estructurado proporciona un único mecanismo para el control de excepciones en modo kernel y modo de usuario.
La ejecución de determinadas secuencias de instrucciones puede dar lugar a excepciones iniciadas por el hardware. Por ejemplo, el hardware genera una infracción de acceso cuando un proceso intenta leer o escribir en una dirección virtual a la que no tiene el acceso adecuado.
Los eventos que requieren control de excepciones también pueden producirse durante la ejecución de una rutina de software (por ejemplo, cuando se especifica un valor de parámetro no válido). Cuando esto sucede, un subproceso puede iniciar explícitamente una excepción mediante una llamada a la función RaiseException . Esta función permite al subproceso que llama especificar información que describe la excepción.
Una excepción puede ser continuable o no continuable. Se produce una excepción no continuable en el hardware o si la continuación no tiene sentido. Una excepción no continuable no finaliza la aplicación. Por lo tanto, una aplicación puede detectar la excepción y ejecutarse. Sin embargo, una excepción no continua suele surgir como resultado de una pila dañada u otro problema grave, lo que dificulta la recuperación de la excepción.