|
Iniciado por Yves, 09,ene. 2019 21:31 - 3 respuestas |
| |
| | | |
|
| |
Miembro registrado 25 mensajes Popularité : +3 (3 votes) |
|
Publicado el 09,enero 2019 - 21:31 |
Bonjour J'ai lu toute la doc sur le traitement des erreurs, mais je voudrais avoir votre avis comment vous gérez ce problème dans vos applications dois-je modifier au début de chaque code pour avoir un traitement automatique ou faut-il juste le préciser dans le code de la première fenêtre ?
merci de vos réponses et recommandations cordialement Yves
-- yves67 |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 948 mensajes Popularité : +30 (92 votes) |
|
Publicado el 11,enero 2019 - 22:47 |
Coucou,
Mécanisme des exceptions générales Rappelle :
A)Si le traitement d'exception est déclaré dans le code d'initialisation du projet, il est valide pour toute erreur se produisant dans le projet.
B)Si le traitement d'exception est déclaré dans le code de déclaration des globales d'une fenêtre, il est valide pour toute erreur survenant dans la fenêtre : un champ de la fenêtre une procédure locale
C)Si le traitement d'exception est déclaré dans un traitement quelconque, il est valide pour toute erreur se produisant dans ce traitement. Reference: https://doc.pcsoft.fr/?3034001
Si tu est dans le cas ' A ', tu dois préciser le code à l’initialisation du projet
QUAND EXCEPTION FinProgramme() FIN
Si tu est dans les autres cas tu peut utiliser la
Gestion automatique des exceptions
Reference: https://doc.pcsoft.fr/?3034010
Tu peut aussi utiliser la fonction ExceptionChangeParamètre
ExceptionChangeParamètre(epGotoCasException) CAS EXCEPTION:
Reference: https://doc.pcsoft.fr/?3034007&name=exceptionchangeparametre_fonction
Proteger une zone de code spécifique :
Procedure ValeurChamp(NomChamp)
QUAND EXCEPTION SI ExceptionInfo(errCode) = ChampInconnu ALORS RENVOYER "" EXCEPTION FIN
Mais aussi Ré-active le traitement d'exception en cours si l'exception a pu être corrigée.
PROCEDURE INTERNE _TraceTableauAssociatif(_taTableau, _nDepth est un entier = 0) POUR TOUT _xElement, _sKey de _taTableau QUAND EXCEPTIONEXCEPTION DANS TraceConstruit("%1>%2" + TAB + "%3", Répète(" ", _nDepth), _sKey, _xElement) FAIRE ExceptionActive() TraceConstruit("%1+%2", Répète(" ", _nDepth), _sKey) _TraceTableauAssociatif(_xElement, _nDepth + 1) FIN FIN Reference: https://doc.pcsoft.fr/?3034002&name=exceptionactive_fonction https://forum.pcsoft.fr/fr-FR/pcsoft.fr.windev/208680-description-variable/read.awp
Traitement d'exception et threads :
Si un traitement d'exception général est effectué dans le code d'initialisation du projet, il sera déclenché si une exception survient :
dans le thread principal, dans un thread secondaire lancé par la fonction ThreadExécute.
Cependant, si le thread secondaire déclenche une exception, il ne sera pas possible de connaître son origine avec la fonction ExceptionInfo dans le code du projet. Pour connaître l'origine d'une exception dans un thread secondaire, il faut inclure le traitement de l'exception dans le thread secondaire.
Reference: https://doc.pcsoft.fr/?3077004
--- In üs we trust - #92i - #LaPiraterieNestJamaisFinie - #Friday - #FuckUnFrigidaireVide
#taggezmoicommejamm111111
Mensaje modificado, 12,enero 2019 - 00:41 |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 25 mensajes Popularité : +3 (3 votes) |
|
Publicado el 12,enero 2019 - 21:26 |
Bonjour merci pour cette réponse, elle est très complète mais j'ai une question si je veux être dans le cas A, c'est à dire pour tout le projet, il faut que le mette le CAS Exception dans la déclaration des variables globales du projet ou dans les variables globales de la première fenêtre ? et pour les erreurs HFSQL, il faut que je crée aussi un CAS ERREUR ?? je vais refaire des tests, merci de votre aide cordialement Yves67
-- yves67 |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 25 mensajes Popularité : +3 (3 votes) |
|
Publicado el 13,enero 2019 - 11:53 |
Rebonjour Je viens de faire quelques tests 1- j'ai mis dans le code d'initialisation du projet, où sont déclarés les variables globales du projet un appel à une procédure globale pour le traitement des erreurs et des exceptions (je pointe sur la même procédure) 2-lors d'une erreur de doublon, je viens bien dans la procédure globale, sauf que je ne connais pas la ligne qui a provoqué l'erreur, seulement le fichier, parce que j'ai mis HSurErreur("*",hTout,"SurAutreErreur") dans le code de la première fenêtre, sinon les erreurs HFSQL ne viennent pas dans la procédure globale, sinon je ne vais pas dans la procédure globale 3-lors d'un dépassement de tableau, dans une boucle, je ne vais pas dans la procédure globale, j'ai la fenêtre d'erreur de windev et l'application se ferme, par contre si je mets une excéption dans le code initial je vais bien dans ce code...
merci de votre aide
Yves67
-- yves67Mensaje modificado, 13,enero 2019 - 12:18 |
| |
| |
| | | |
|
| | | | |
| | |
|