FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  MembresMembres  Connexion  
Derniers sujets
» number_mouse_up
On_Error_Goto Emptypar jjn4 Aujourd'hui à 11:59

» Aide de PANORAMIC
On_Error_Goto Emptypar jjn4 Aujourd'hui à 11:16

» trop de fichiers en cours
On_Error_Goto Emptypar lepetitmarocain Aujourd'hui à 10:43

» Je teste PANORAMIC V 1 beta 1
On_Error_Goto Emptypar papydall Aujourd'hui à 4:17

» select intégrés
On_Error_Goto Emptypar jjn4 Hier à 18:33

» PANORAMIC V 1
On_Error_Goto Emptypar Klaus Hier à 9:53

» bouton dans autre form que 0
On_Error_Goto Emptypar leclode Lun 6 Mai 2024 - 13:59

» KGF_dll - nouvelles versions
On_Error_Goto Emptypar Klaus Lun 6 Mai 2024 - 11:41

» Gestion d'un système client-serveur.
On_Error_Goto Emptypar Klaus Lun 6 Mai 2024 - 10:23

» Editeur EliP 6 : Le Tiny éditeur avec 25 onglets de travail
On_Error_Goto Emptypar Froggy One Jeu 2 Mai 2024 - 11:16

» @Jack
On_Error_Goto Emptypar Jack Mar 30 Avr 2024 - 20:40

» Une calculatrice en une ligne de programme
On_Error_Goto Emptypar jean_debord Dim 28 Avr 2024 - 8:47

» Form(résolu)
On_Error_Goto Emptypar leclode Sam 27 Avr 2024 - 17:59

» Bataille navale SM
On_Error_Goto Emptypar jjn4 Ven 26 Avr 2024 - 17:39

» Les maths du crocodile
On_Error_Goto Emptypar jean_debord Jeu 25 Avr 2024 - 10:37

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Mai 2024
LunMarMerJeuVenSamDim
  12345
6789101112
13141516171819
20212223242526
2728293031  
CalendrierCalendrier
Le deal à ne pas rater :
Pokémon EV06 : où acheter le Bundle Lot 6 Boosters Mascarade ...
Voir le deal

 

 On_Error_Goto

Aller en bas 
+2
Jicehel
JL35
6 participants
AuteurMessage
JL35




Nombre de messages : 7095
Localisation : 77
Date d'inscription : 29/11/2007

On_Error_Goto Empty
MessageSujet: On_Error_Goto   On_Error_Goto EmptyMer 21 Jan 2015 - 20:38

Il arrive assez souvent (à moi en tout cas) pendant la mise au point d'un programme, et parfois après à la suite d'une manoeuvre non prévue, ou d'une modif malencontreuse, qu'on ait un plantage rédhibitoire qui fait qu'on a perdu définitivement tout ce qui a été fait avant.
Avec le On_Error_Goto, on bénéficie d'un répit qui permet d'intervenir (sauvegarder éventuellement) avant le plantage définitif. Ce peut être une sauvegarde de type graphique, texte, à adapter suivant les cas.
Mais il faut le prévoir systématiquement, à tout hasard, en début de programme, par exemple:
Code:
...
ON_ERROR_GOTO Zzerr
END
' -------
Zzerr:
fpr$ = "C:\Temp\Sauve.bmp"
a$ = "Le programme va se terminer sur 'OK'."+CHR$(13)+CHR$(10)
a$=a$+"La page actuelle est sauvegardée sous :"+CHR$(13)+CHR$(10)+fpr$
FILE_SAVE p,fpr$: ' ici, sauvegarde du picture p, mais ça peut être n'importe quoi d'autre
Erreur(100,60,a$): ' affichage d'une boîte d'erreur en 100,60, avec type erreur et texte explicatif.
TERMINATE
' -------
' -------
SUB Erreur(x%,y%,txt$)
' Appel sur On_Error_Goto, affichage d'une boîte d'erreur en x%,y%,
' avec les caractéristiques de l'erreur et le texte txt$, avant sortie définitive.
DIM_LOCAL nf%,fe%
LABEL Ferreur
nf% = 1000: WHILE OBJECT_EXISTS(nf%)=1: nf%=nf%+2: END_WHILE
FORM nf%: TOP nf%,y%: LEFT nf%,x%: BORDER_SMALL nf%: CAPTION nf%,tit$
WIDTH nf%,480: HEIGHT nf%,190: FONT_BOLD nf%: FONT_NAME nf%,"Lucida Console"
FONT_SIZE nf%,11: CAPTION nf%,"   ***   ERREUR   FATALE   !   ***"
MEMO nf%+1: PARENT nf%+1,nf%: FULL_SPACE nf%+1: COLOR nf%+1,255,255,128
ERROR_FRENCH
ITEM_ADD nf%+1,"Erreur ligne n°: "+STR$(ERROR_LINE)
ITEM_ADD nf%+1,"Erreur type    : "+STR$(ERROR_NUMBER)
ITEM_ADD nf%+1,"Libellé        : "+ERROR_TYPE$
ITEM_ADD nf%+1,"": ITEM_ADD nf%+1,txt$: ' texte supplémentaire
BUTTON nf%+2: PARENT nf%+2,nf%: TOP nf%+2,HEIGHT(nf%)-60
LEFT nf%+2,WIDTH(nf%+1)/2-40: CAPTION nf%+2,"OK": ON_CLICK nf%+2,Ferreur
WHILE fe%=0: WAIT 500: END_WHILE: EXIT_SUB
Ferreur:
    fe%=1
RETURN
END_SUB
Revenir en haut Aller en bas
Jicehel

Jicehel


Nombre de messages : 5947
Age : 51
Localisation : 77500
Date d'inscription : 18/04/2011

On_Error_Goto Empty
MessageSujet: Re: On_Error_Goto   On_Error_Goto EmptyMer 21 Jan 2015 - 21:02

Oui, c'est bien pratique pour débugguer
Revenir en haut Aller en bas
JL35




Nombre de messages : 7095
Localisation : 77
Date d'inscription : 29/11/2007

On_Error_Goto Empty
MessageSujet: Re: On_Error_Goto   On_Error_Goto EmptyMer 21 Jan 2015 - 21:17

Je ne pensais pas seulement au debuggage, mais aussi après, pendant l'exploitation.
L'expérience montre qu'il y aura toujours un utilisateur qui va faire une manoeuvre imprévue qui fera planter le programme, et on sera bien content d'avoir une sauvegarde de ce qui a été fait jusque là.

Dans le même ordre d'idée, y a t'il un moyen, quand on est dans un programme de visualiser une ligne quelconque de ce programme donnée par son numéro ? par exemple on part en erreur, et connaissant le numéro de la ligne de l'erreur de visualiser cette même ligne. Et/ou les quelques lignes autour. Je parle ici d'un lancement sous éditeur, avec des modifications éventuelles par rapport à la version enregistrée en .bas.

Ou bien, ce qui reviendrait au même, provoquer par programme l'enregistrement de ce même programme en cours d'exécution qui se trouve dans Panoramic_Editor (un peu tordu comme idée ?).
Revenir en haut Aller en bas
papydall

papydall


Nombre de messages : 7006
Age : 73
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

On_Error_Goto Empty
MessageSujet: Re: On_Error_Goto   On_Error_Goto EmptyJeu 22 Jan 2015 - 0:37

Et si Panoramic_Editor se comporterait autrement, comme certains autres langages le font ?
Je m’explique :
Certains langages de programmation refusent catégoriquement l’exécution (compilation ou interprétation) du programme avant son enregistrement.
Après avoir tapé son programme, si on souhaite l’exécuter sans le sauvegarder, le système affiche un message du genre :
Vous devez enregistrer votre programme avant.
Pour toute modification ultérieure du code, le système pose la même question de la sauvegarde.

Certains diront que ça sera une contrainte ; pour d’autres c’est une garantie.
Qu’en pensez-vous, vous qui êtes entrain de lire cette prose ?
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
Yannick




Nombre de messages : 8610
Age : 53
Localisation : Bretagne
Date d'inscription : 15/02/2010

On_Error_Goto Empty
MessageSujet: re   On_Error_Goto EmptyJeu 22 Jan 2015 - 1:08

Cela pourrait être un mieux même si cela serait contraignant.
Revenir en haut Aller en bas
En ligne
Jicehel

Jicehel


Nombre de messages : 5947
Age : 51
Localisation : 77500
Date d'inscription : 18/04/2011

On_Error_Goto Empty
MessageSujet: Re: On_Error_Goto   On_Error_Goto EmptyJeu 22 Jan 2015 - 7:52

Jack ne veut pas trop toucher à l'éditeur, alors je pense que ce serait plutôt une option à ajouter dans les éditeurs de Klaus et d'Ygeronimi
Revenir en haut Aller en bas
JL35




Nombre de messages : 7095
Localisation : 77
Date d'inscription : 29/11/2007

On_Error_Goto Empty
MessageSujet: Re: On_Error_Goto   On_Error_Goto EmptyJeu 22 Jan 2015 - 9:43

Eh bien personnellement je trouve que c'est plutôt bien pratique de pouvoir exécuter sans enregistrer !
Pour tester des petites modifs, mettre des points d'arrêt avec des 'Message', etc. s'il fallait enregistrer à chaque fois avant exécution en détruisant l'original je trouve que ce serait plutôt contraignant.

Je n'enregistre que pour valider mes modifications, et de toute façon il y a le .bak qui fait très bien l'affaire si on a un problème.

Je trouve que Panoramic_Editor est très bien tel qu'il est, à quelques broutilles près, c'est mon avis, et je le partage.
Revenir en haut Aller en bas
mimic

mimic


Nombre de messages : 103
Localisation : france
Date d'inscription : 02/09/2009

On_Error_Goto Empty
MessageSujet: Re: On_Error_Goto   On_Error_Goto EmptyJeu 22 Jan 2015 - 10:53

Je partage l’avis de JL35.

Pour moi, ce qui manque à Paranomic, c’est la possibilité d’exécuter le code pas à pas …
Revenir en haut Aller en bas
JL35




Nombre de messages : 7095
Localisation : 77
Date d'inscription : 29/11/2007

On_Error_Goto Empty
MessageSujet: Re: On_Error_Goto   On_Error_Goto EmptyJeu 22 Jan 2015 - 13:32

Oui mimic, mais ce n'est pas le même langage, Paranomic ce n'est pas pareil que Panoramic Very Happy

Blague à part, faire du pas à pas dans un langage événementiel, ça me paraît difficilement concevable.
Revenir en haut Aller en bas
mimic

mimic


Nombre de messages : 103
Localisation : france
Date d'inscription : 02/09/2009

On_Error_Goto Empty
MessageSujet: Re: On_Error_Goto   On_Error_Goto EmptyJeu 22 Jan 2015 - 13:56

oups... La grippe me fatigue...

Revenir en haut Aller en bas
Klaus

Klaus


Nombre de messages : 12293
Age : 74
Localisation : Ile de France
Date d'inscription : 29/12/2009

On_Error_Goto Empty
MessageSujet: Re: On_Error_Goto   On_Error_Goto EmptyJeu 22 Jan 2015 - 14:30

@JL35:
Dans SyneditEditor, je le fais en mode debug...
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
JL35




Nombre de messages : 7095
Localisation : 77
Date d'inscription : 29/11/2007

On_Error_Goto Empty
MessageSujet: Re: On_Error_Goto   On_Error_Goto EmptyJeu 22 Jan 2015 - 15:54

J'avoue que je ne l'ai pas encore essayé, justement par manque de motivation puisque l'éditeur originel convient bien à mes besoins.
Par paresse aussi, certes.
Mais je ne doute pas que les possibilités d'édition doivent être très augmentées, pour des besoins plus spécifiques, d'après ce que j'en ai lu ici au fur et à mesure des parutions de mise au point.
Revenir en haut Aller en bas
Jicehel

Jicehel


Nombre de messages : 5947
Age : 51
Localisation : 77500
Date d'inscription : 18/04/2011

On_Error_Goto Empty
MessageSujet: Re: On_Error_Goto   On_Error_Goto EmptyJeu 22 Jan 2015 - 16:03

Bon ,le sujet n'est pas sur l'éditeur Panoramic, je vais donc faire court.
En fait, ce qui est super avec Synedit:
c'est que le programme est ouvert et que tu peux y ajouter tous les outils que tu veux
tu peux replier des sections de code quand tu n'en n'a pas besoin ou pour augmenter la lisibilité
tu peux imprimer directement
tu peux débugguer et afficher la valeur de variables à un moment donné
...
Je recolle au sujet avec ceci: Le On_Error_Goto peut permettre de débugger (entre autre avec l'éditeur intégré) mais son utilité est en effet aussi pour les versions finales de gérer les erreurs, quand elles sont prévisibles ou non pour faire une action, afficher un message, sortir "proprement du programme" ou simplement pour reprendre le programme comme si de rien était à un endroit donné.
Revenir en haut Aller en bas
JL35




Nombre de messages : 7095
Localisation : 77
Date d'inscription : 29/11/2007

On_Error_Goto Empty
MessageSujet: Re: On_Error_Goto   On_Error_Goto EmptyJeu 22 Jan 2015 - 16:18

... ou simplement pour reprendre le programme comme si de rien était à un endroit donné

Ah bon, tu es sûr ?
Pour moi la fermeture du programme est inéluctable après l'exécution du bout de programme visé par le on_error_goto ?
Revenir en haut Aller en bas
Klaus

Klaus


Nombre de messages : 12293
Age : 74
Localisation : Ile de France
Date d'inscription : 29/12/2009

On_Error_Goto Empty
MessageSujet: Re: On_Error_Goto   On_Error_Goto EmptyJeu 22 Jan 2015 - 17:43

Tu peux te servir du ON_ERROR_GOTO de façpn beaucoup plus discriminante. Place une telle commande devant toute section de code pouvant potentiellement générer une erreur, mais chacune avec un label différent. Tu peux alors afficher des messages d'erreur plus ciblés, et même faire des traitements de récupération, pour pouvoir continuer. Il suffit de désactiver cela par on OFF_ERROR_GOTO lorsque l'erreur est traitée, ou alors faire un ON_ERROR_GOTO vers un autre label.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
JL35




Nombre de messages : 7095
Localisation : 77
Date d'inscription : 29/11/2007

On_Error_Goto Empty
MessageSujet: Re: On_Error_Goto   On_Error_Goto EmptyJeu 22 Jan 2015 - 18:03

... faire des traitements de récupération, pour pouvoir continuer
Il faut que j'étudie ça un peu plus à fond, mais pour moi le On_Error_Goto permet de différer l'arrêt du programme (permettant effectivement de faire un signalement, une sauvegarde), mais que de toute façon l'erreur est fatale et conduit inéluctablement à l'arrêt du programme.

Je ne vois pas bien comment on peut poursuivre le programme avec un Off_Error_Goto après une erreur quelconque, syntaxe, etc. ce qui voudrait dire ignorer l'erreur ? la suite n'aurait plus de sens...

Je sais bien qu'on peut mettre des On_Error et des Off_Error n'importe où, mais si l'erreur survient, le programme est terminé. Enfin je crois.
Revenir en haut Aller en bas
Klaus

Klaus


Nombre de messages : 12293
Age : 74
Localisation : Ile de France
Date d'inscription : 29/12/2009

On_Error_Goto Empty
MessageSujet: Re: On_Error_Goto   On_Error_Goto EmptyJeu 22 Jan 2015 - 18:33

Pas forcément. Tout dépend du contexte. Si tu saisis par exemple une information à l'écran, est-ce que tu te donnes la peine d'analyser la chaîne de caractères sous toutes les coutures pour vérifier que la réponse est bien valide ? Numérique, par exemple, en valeur entière sans fractions et entre deux bornes bien spécifiques ? Il suffit de faire un ON_ERR9R_GOTO, d'affecter la saisie dans une variable appropriée et de faire un OFF_ERROR_GOTO. En cas d'erreur, tu fais également un OFF_ERROR_GOTO, tu signales "erreur de saisie" et tu attends une nouvelle saisie.

Ce n'est qu'un petit exemple. Tu peux envelopper tous tes traitements de fichiers dans un ON_ERROR_GOTO. Et en cas d'anomalie, tu signales "fin de fichier prématurée", "erreur en écriture", que sais-je. De multiples choses peuvent survenir, et il est impossible de se prémunir de tout. Pourtant, dans beaucoup de cas, il suffit d'avertir l'utilisateur qu'il y a un problème et de lui laisser la décision pour la suite. Juste un exemple: on veut écrire sur un disque externe, il est bien présent, mais en protection d'écriture. Pourquoi planter tout le programme ? On intercepte l'erreur, on avertit l'utilisateur, et on arrête le traitement, pas le programme. Il lui suffira alors d'enlever la protection d'écriture et de déclencher un nouvel essai.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Yannick




Nombre de messages : 8610
Age : 53
Localisation : Bretagne
Date d'inscription : 15/02/2010

On_Error_Goto Empty
MessageSujet: re   On_Error_Goto EmptyJeu 22 Jan 2015 - 19:29

Je reviens sur l' obligation d' enregistrer quelques secondes.
Pour ce qui est de mon éditeur ( que je suis en train de refaire ),
il y a 5 fichiers source. ces fichiers sont assemblés pour n' en faire qu' 1 à chaque prévisualisation.

Je peux obliger l' enregistrement des fichiers avant une prévisualisation mais cela ne changera pas grand chose au
chmilblick.

Il faudrait une fonction "debug" avant l' envoie de ce fichier à Panoramic.exe pour le visualiser.

Si il y a un amateur, perso je ne m' en sens pas capable, je rajouterai le bouton dans la barre d' outils avec joie.

Cet éditeur est tout autant le votre que le mien. Laughing
Revenir en haut Aller en bas
En ligne
Contenu sponsorisé





On_Error_Goto Empty
MessageSujet: Re: On_Error_Goto   On_Error_Goto Empty

Revenir en haut Aller en bas
 
On_Error_Goto
Revenir en haut 
Page 1 sur 1

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: PANORAMIC :: Présentation et bavardage-
Sauter vers: