PC SOFT

FOROS PROFESIONALES
WINDEVWEBDEV y WINDEV Mobile

Inicio → WINDEV Mobile 2024 → Comportement du CAS ERREUR sur Android
Comportement du CAS ERREUR sur Android
Iniciado por Gurdarr, 20,nov. 2024 17:20 - No hay respuesta
Miembro registrado
232 mensajes
Publicado el 20,noviembre 2024 - 17:20
Bonjour,

J'ai remarquer un problème sur l'utilisation des cas erreurs

J'ai une class pour ma gestion FTP
avec les méthodes suivantes entre autre

Envoi_Fichier()

FTP_CréeRep()

FTP_Attribut()

Ces 3 méthodes ont la gestion CAS ERREUR et CAS EXCEPTION

l'ordre d'appel de ces 3 procédures est la suivante
1) Je veux envoyer un fichier sur le FTP
2) Je vérifie si le répertoire de destination existe sur le FTP

Donc Envoi_Fichier() contient FTP_CréeRep() qui contient FTP_Attribut()

la fonction FTPAttribut() de windev déclenche une erreur quand le répertoire n'existe pas
la fonction FTPRepCrée() de windev déclenche une erreur quand le répertoire existe


Ces erreurs devraient être captés par le cas erreur de leur méthodes respectifs mais en production ce n'est pas le cas c'est le cas erreur de Envoi_Fichier() qui est déclenché.

Je suis sur android 8.1 et 11

voici le code de ces 3 méthodes
Procedure PRIVÉE FTP_CréeRep(LOCAL sPNomDossier est une chaîne)
nUneCo est un entier
bResultat est un booléen = Vrai
SI m_taTab_RepertoireExiste[sPNomDossier]..Vide = Vrai ALORS
SI FTP_Attribut(sPNomDossier) = Faux ALORS
SI Connexion_FTP(nUneCo) ALORS
SI FTPRepCrée(nUneCo, sPNomDossier) = Faux ALORS
bResultat = Faux
FIN
FTPDéconnecte(nUneCo)
FIN
FIN
SINON
RENVOYER m_taTab_RepertoireExiste[sPNomDossier]
FIN

//le répertoire à été créé ou existe déjà
SI bResultat = Vrai ALORS m_taTab_RepertoireExiste[sPNomDossier] = Vrai

RENVOYER bResultat

CAS ERREUR:
SI nUneCo > -1 ALORS FTPDéconnecte(nUneCo)
RENVOYER Faux

CAS EXCEPTION:
SI nUneCo > -1 ALORS FTPDéconnecte(nUneCo)
RENVOYER Faux


Procedure PRIVÉE FTP_Attribut(LOCAL sP_NomDossier est une chaîne,np_Tentative est un entier = 1):booléen
nUneCo est un entier
bResultat est un booléen
sResultat est une chaîne

SI Connexion_FTP(nUneCo) ALORS

sResultat = FTPAttribut(nUneCo, sP_NomDossier)
SI sResultat = "ERR" ALORS
bResultat = Faux
SINON
bResultat = Vrai
FIN
FTPDéconnecte(nUneCo)
FIN

RENVOYER bResultat

CAS ERREUR:
SI nUneCo > -1 ALORS FTPDéconnecte(nUneCo)
RENVOYER Faux

CAS EXCEPTION:
SI nUneCo > -1 ALORS FTPDéconnecte(nUneCo)
RENVOYER Faux


Procedure PRIVÉE Envoi_Fichier(LOCAL sFichierATransfererLocal est une chaîne, LOCAL sDossierCibleFTP est une chaîne, nB_TentativesRestantes est un entier = 3, bSupprFichierFTPApresTelechargement est un booléen = Faux, LOCAL sP_ExtensionSurLeFTP est une chaîne = "")

nUneConnexion est un entier = -1
bResultatFinal est un booléen = Faux


//Vérifier si le répertoire FTP existe sinon on le créé
:FTP_CréeRep(:FTP_ExtraitChemin(sDossierCibleFTP))

// Vérifier si la connexion est ok
SI Connexion_FTP(nUneConnexion) = Vrai ALORS

//Envoie du fichier sur le FTP....

bResultatFinal = Vrai
FTPDéconnecte(nUneConnexion)
SINON
bResultatFinal = Faux
FIN




RENVOYER bResultatFinal

CAS ERREUR:
SI nUneConnexion > -1 ALORS FTPDéconnecte(nUneConnexion)
CasErreur(Faux,"Envoi_Fichier")
RENVOYER Faux
CAS EXCEPTION:
SI nUneConnexion > -1 ALORS FTPDéconnecte(nUneConnexion)
CasException(Faux,"Envoi_Fichier")
RENVOYER Faux