Rapport d’analyse du code d’exception WinDev
1. Gestionnaire d’exceptions globales (GExceptionManager
)
- Utilise un singleton (
mg_pclInstance
) pour centraliser la gestion.
- Structure
STMessage
pour formater les messages d’erreur SQL avec :
sMessageUser
: message lisible
sSQL
: requête SQL fautive
- Procédures disponibles :
CatchExceptionProjet
: gestion globale des exceptions
CatchExceptionTEST
/ CatchExceptionInstanceNull
: gèrent l’exception de test
CatchExceptionSQL
: pour les erreurs SQL génériques
ForcerExceptionTEST
/ ForcerExceptionSQL
: pour déclencher manuellement des exceptions
2. Analyse du code SQLEXEC_PERSO
- Wrapper autour de
SQLExec
.
- Déclenche une exception si l’exécution échoue et que
bLanceExceptionSiSyntaxeInvalide
est Vrai
.
- Utilise
GExceptionManager.ForcerExceptionSQL
pour intégrer la gestion centralisée.
- Bloc
CAS EXCEPTION
:
- Code
70237
: reconnexion automatique possible.
- Code
9999999999
: semble être un placeholder à adapter.
- Autres cas : propagés avec
ExceptionPropage()
.
3. Recommandations et améliorations proposées
- Utiliser
sSQLErr
dans l’appel à ForcerExceptionSQL
pour plus d’informations.
- Remplacer le test
DANS (9999999999)
par une vraie liste ou plage de codes.
- Ajouter des logs dans un fichier local ou base pour traçabilité.
- Envisager une désérialisation du contenu JSON dans
CatchExceptionProjet
si l’exception est de type SQL.
4. Exemple de code à améliorer
// Version actuelle :
GExceptionManager.ForcerExceptionSQL("TEST", sSQL)
// Recommandé :
GExceptionManager.ForcerExceptionSQL(sSQLErr, sSQL)