IMERROR (3I)     version 4.6.9     March 2022

User Intro    Prog Intro    Liste des programmes    Liste des manuels
Table of Contents


NAME

imerror, ermesf, c_erreur - traitement des erreurs

SYNOPSIS

subroutine ermesf(ier)
integer ier

ermesf_(ier)
Fort_int *ier;

void imerror(ier,format,p1,..,p8)
int ier; char *format;
int p1,...,p8;

#include <inrimage/error.h>
int ier;
c_erreur(ier)

DESCRIPTION

ermesf, imerror ne retournent pas en séquence, mais font soit un exit soit un saut vers un point de reprise (par longjmp), si un tel point a été défini.
Les seuls programmes qui définissent un point de reprise sont exec et imexec, et la macro c_erreur, pour l'instant.
L'argument ier est un code d'erreur, et doit être différent de 0.

c_erreur est une macro qui appelle setjmp et permet de définir un point de reprise : en cas d'erreur, on viendra réexécuter l'instruction qui suit c_erreur avec une valeur non nulle dans ier.

imerror accepte en outre un argument format, qui est utilisé comme format d'un fprintf sur stderr, et jusqu'à 8 arguments à imprimer p1 à p8.

En mode KHOROS, imerror essaye d'imprimer les messages d'aide (correspondant aux arguments ucmd, udetail de inr_init).

EXEMPLE :

while(1) {
	c_erreur(ier)
	if(ier != 0) break;  /* on a eu une erreur */
	.....
}

SEE ALSO

imexec(3i) , imperr(3i)