ONINTGO

Sommaire


Onintgopermet dans un traitement de déclarer une étiquette où se déroutera l'exécutiondu traitement sur appui de la touche d'interruption.

 

Syntaxes

   Onintgo[ étiquette] [ Fromtraitement]

 

Paramètres

Elément

Description

Restrictions

étiquette

Etiquette de branchement en casd'interruption.

Aucune.

traitement

Traitement dans lequel est définiel'étiquette (par défaut, il s'agit du traitement courant), sous l'une desformes suivantes :
nom_d'OBJet '='
exp_nomtrt

Le traitement doit être accessible.

exp_nomtrt

Expression alphanumérique dont lerésultat est un nom de traitement.

Le traitement doit être accessible.

 

Exemples

   # Sur appui de la touched'interruption, l'exécution du traitement
   # se déroute sur l'étiquette LECTURE.
   # Le traitement est interruptible
    Inter
   # sur <INTERRUPTION>, alleren LECTURE
   Onintgo LECTURE
    For [LNS]CLE(1)
       For [LNS]CLE
         Infbox num$(ZV)
       Next
       Infbox num$(TOTAL)
    Next
    End
   #
   # traitement de l'interruption
    LECTURE
       Call VERIF FromGESINTER
    Resume

 

Description et commentaires

Onintgopermet de définir une étiquette où se déroute l'exécution d'un traitement surappui de la touche d'interruption. Si une interruption est déclenchée aprèsl'ordre Onintgo,la partie de traitement qui suit l'étiquette est exécutée.

Dans le traitement de l'interruption, la fonction errl contient le numéro deligne du traitement où l'interruption a été déclenchée.

Un traitement d'interruption se termine soit par Resume, soit par End. Dansle premier cas, l'exécution du traitement interrompu reprendra à l'instructionsuivant celle où s'est produit l'interruption. Dans le deuxième cas, letraitement est interrompu de façon définitive.

L'interruption se déclenche à condition :

On peut définir l'étiquette appelée par Onintgo dans un autre traitement que letraitement courant. Il faut alors en préciser le nom dans l'instruction Onintgo. Cemécanisme permet de se constituer des traitements généraux de gestion desinterruptions.

Onintgosans étiquette supprime la référence à une étiquette en cas d'interruption; parla suite, tout déroutement devient impossible.

 

Remarques

Une déclaration Onintgoreste valide tant que l'on ne quitte pas le traitement.

Dès qu'une gestion des interruptions est faite dans un traitement, elle agitaussi dans chaque sous-programme appelé par Call. Cependant, si unsous-programme ne comporte pas d'Onintgo, et qu'une interruption estdéclenchée lors de son exécution, le sous-programme va s'arrêter, et letraitement appelant traiter l'interruption. Si l'instruction Resume termine letraitement de gestion d'erreur, son exécution relancera les instructions dutraitement appelant, celles du sous-programme placées après la dernière exécutéeétant alors ignorées (dans le cas d'un End, l'arrêt du traitement seradéfinitif). Il est donc impératif d'utiliser Onintgo dans un sous-programme appelépar Call pour y gérer les interruptions spécifiques (on peut aussi rendre lesous-programme ininterruptible).

Le traitement de gestion d'interruption ne peut en aucun cas terminer unetransaction, que ce soit par Commit ou par Rollback, car il ne peut être dumême niveau de localité que le traitement qui l'a initié.

S'il y a une transaction en cours au moment où l'interruption est confirmée,elle est annulée automatiquement si le traitement se termine par End.L'utilisateur en sera averti.

 

Erreurs associées

Erreur

Description

PAFIC(20)

Traitementinexistant.

ERLAB(39)

Etiquetteinexistante (dans la syntaxe "Onintgo étiquette", une étiquette inexistanteest détectée dès la validation du traitement).

ERMODE(10)

exp_nomtrtn'est pas de type Char.

 

Mots-clés associés

INTER - RESUME - END - ERRL - CALL


SOMMAIRE

Adonix X3(r) L4G
Copyright (c) Adonix 1999 - All rights reserved