Partager via


Gestion des exceptions (gestion des erreurs)

Les exceptions peuvent être initiées par du matériel ou des logiciels, et peuvent se produire en mode noyau et en mode utilisateur. La gestion structurée des exceptions fournit un mécanisme unique pour la gestion des exceptions en mode noyau et en mode utilisateur.

L’exécution de certaines séquences d’instructions peut entraîner des exceptions initiées par le matériel. Par exemple, une violation d’accès est générée par le matériel lorsqu’un processus tente de lire ou d’écrire à partir d’une adresse virtuelle à laquelle il n’a pas l’accès approprié.

Les événements qui nécessitent la gestion des exceptions peuvent également se produire pendant l’exécution d’une routine logicielle (par exemple, lorsqu’une valeur de paramètre non valide est spécifiée). Dans ce cas, un thread peut lancer une exception explicitement en appelant la fonction RaiseException . Cette fonction permet au thread appelant de spécifier les informations qui décrivent l’exception.

Une exception peut être continu ou non continu. Une exception non continue se produit lorsque l’événement n’est pas continuable dans le matériel, ou si la continuation n’a aucun sens. Une exception non continue ne met pas fin à l’application. Par conséquent, une application peut être en mesure d’intercepter l’exception et de l’exécuter. Toutefois, une exception non continue se produit généralement à la suite d’une pile endommagée ou d’un autre problème grave, ce qui rend difficile la récupération de l’exception.