System.ExceptProc

De RAD Studio API Documentation
Aller à : navigation, rechercher

Delphi

ExceptProc: Pointer;    { Unhandled exception handler }

C++

extern DELPHI_PACKAGE void *ExceptProc;

Propriétés

Type Visibilité  Source Unité  Parent
variable public
System.pas
System.hpp
System System

Description

Pointe sur le gestionnaire d'exception de niveau le plus bas.

Dans le code Delphi, ExceptProc traite les exceptions non gérées (les exceptions qui n'ont pas été interceptées dans la partie except d'une instruction try..except). Si votre application possède un objet TApplication, elle intercepte automatiquement les exceptions et génère un événement OnException (auquel vous pouvez répondre en utilisant le gestionnaire d'événement OnException de l'application ou d'un objet TApplicationEvents). Par conséquent, comme l'objet TApplication intercepte les exceptions, elles n'atteignent jamais le gestionnaire ExceptProc. En revanche, même si vous avez un objet TApplication, celui-ci n'intercepte pas les exceptions générées au cours de l'initialisation et de la finalisation. Elles sont gérées par ExceptProc.

Vous pouvez définir un point d'entrée sur ExceptProc pour modifier la manière de signaler les exceptions non gérées. Pour ce faire, enregistrez les contextes de ExceptProc avant de la remplacer par l'adresse de votre propre gestionnaire d'exception. La première instruction de votre nouveau gestionnaire d'exception doit réinstaller la valeur ainsi sauvegardée de ExceptProc. La procédure ExceptProc fait ainsi partie d'une chaîne de procédures d'exception, chacune étant exécutée dans l'ordre inverse de leur installation.

La procédure affectée à ExceptProc doit avoir une signature semblable à :

procedure ExceptHandler(ExceptObject: TObject; ExceptAddr: Pointer);


Voir aussi