Difference between revisions of "FR/Documentation/BASIC Guide/Error Handling"
(New page: {{FR/Documentation/BASICGuideTOC/v2 |ShowPrevNext=block |ShowPrevPage=block |PrevPage=Documentation/BASIC Guide/Procedures and Functions |NextPage=Documentation/BASIC Guide/Runtime Library...) |
|||
(2 intermediate revisions by 2 users not shown) | |||
Line 2: | Line 2: | ||
|ShowPrevNext=block | |ShowPrevNext=block | ||
|ShowPrevPage=block | |ShowPrevPage=block | ||
− | |PrevPage=Documentation/BASIC Guide/Procedures and Functions | + | |PrevPage=FR/Documentation/BASIC Guide/Procedures and Functions |
− | |NextPage=Documentation/BASIC Guide/ | + | |NextPage=FR/Documentation/BASIC Guide/Other_Instructions |
|lang=block | |lang=block | ||
}} | }} | ||
Line 74: | Line 74: | ||
permet d'afficher les informations concernant une erreur dans une fenêtre de message. | permet d'afficher les informations concernant une erreur dans une fenêtre de message. | ||
− | {{ | + | {{Note|VBA regroupe les messages d'erreur dans un objet statistique nommé <tt>Err</tt>, tandis que {{OOo}} Basic fournit les variables <tt>Err,</tt> <tt>Error$</tt> et <tt>Erl</tt>.}} |
Les informations de statut restent valables jusqu'à ce que le programme rencontre une commande <tt>Resume</tt> ou <tt>On Error</tt>, qui les réinitialise. | Les informations de statut restent valables jusqu'à ce que le programme rencontre une commande <tt>Resume</tt> ou <tt>On Error</tt>, qui les réinitialise. | ||
− | {{ | + | {{Note|Dans VBA, la méthode <tt>Err.Clear</tt> de l'objet <tt>Err</tt> réinitialise le statut d'erreur lorsqu'une erreur s'est produite. Dans {{OOo}} Basic, les commandes utilisées à cet effet sont <tt>On Error</tt> et <tt>Resume</tt>. }} |
== Astuces pour le traitement structuré des erreurs == | == Astuces pour le traitement structuré des erreurs == |
Latest revision as of 18:23, 6 July 2018
- Présentation d'un programme Apache OpenOffice Basic
- Utilisation des variables
- Variables de chaîne de caractères
- Variables numériques
- Variables booléennes
- Variables de date et d'heure
- Matrices
- Portée et durée de vie des variables
- Constantes
- Opérateurs
- Instructions conditionnelles
- Boucles
- Procédures et fonctions
- Traitement des erreurs
La correction des erreurs est l'une des parties les plus lourdes de la programmation. Apache OpenOffice Basic fournit de nombreux outils qui simplifient le traitement des erreurs.
Instruction On Error
L'instruction On Error est essentielle pour le traitement des erreurs :
Sub Test On Error Goto ErrorHandler ' ... undertake task during which an error may occur Exit Sub ErrorHandler: ' ... individual code for error handling End Sub
La ligne On Error Goto ErrorHandler définit la façon dont Apache OpenOffice Basic réagit en cas d'erreur. L'instruction Goto ErrorHandler indique à Apache OpenOffice Basic de quitter la ligne de programme active et d'exécuter le code ErrorHandler:.
Commande Resume
La commande Resume Next reprend le déroulement du programme après l'exécution du code de traitement des erreurs, à partir de la ligne suivant celle où l'erreur s'est produite :
ErrorHandler: ' ... individual code for error handling Resume Next
La commande Resume Proceed permet d'indiquer un point particulier où reprendre le programme après le traitement de l'erreur :
ErrorHandler: ' ... individual code for error handling Resume Proceed Proceed: ' ... the program continues here after the error
Pour reprendre un programme sans afficher de message d'erreur lorsqu'une erreur se produit, utilisez la syntaxe suivante :
Sub Test On Error Resume Next ' ... perform task during which an error may occur End Sub
La commande On Error Resume Next doit être utilisée avec précaution, car elle a un effet global.
Requêtes portant sur les informations sur les erreurs
Pour traiter une erreur, il est utile de disposer d'une description de celle-ci et de savoir où et pourquoi elle est survenue :
- La variable Err contient le nombre d'erreurs qui se sont produites.
- La variable Error$ contient une description de l'erreur.
- La variable Erl contient le numéro de la ligne où l'erreur s'est produite.
L'appel :
MsgBox "Error " & Err & ": " & Error$ & " (line : " & Erl & ")"
permet d'afficher les informations concernant une erreur dans une fenêtre de message.
VBA regroupe les messages d'erreur dans un objet statistique nommé Err, tandis que Apache OpenOffice Basic fournit les variables Err, Error$ et Erl. |
Les informations de statut restent valables jusqu'à ce que le programme rencontre une commande Resume ou On Error, qui les réinitialise.
Astuces pour le traitement structuré des erreurs
La commande de définition On Error et la commande de retour Resume sont toutes deux des variantes de la construction Goto.
Pour structurer proprement le code afin de ne pas générer d'erreurs lorsque vous utilisez cette construction, évitez de faire appel à des commandes de saut sans les surveiller.
La plus grande prudence est recommandée lors de l'utilisation de la commande On Error Resume Next, car elle supprime tous les messages d'erreur ouverts.
La meilleure solution consiste à n'utiliser qu'une seule approche pour le traitement des erreurs à l'intérieur d'un programme : séparez le traitement des erreurs du code du programme lui-même et ne revenez pas dans le code initial après une erreur.
Le code ci-dessous est un exemple de procédure de traitement des erreurs :
Sub Example ' Define error handler at the start of the function On Error Goto ErrorHandler ' ... Here is the actual program code On Error Goto 0 ' Deactivate error handling ' End of regular program implementation Exit Sub ' Start point of error handling ErrorHandler: ' Check whether error was expected If Err = ExpectedErrorNo Then ' ... Process error Else ' ... Warning of unexpected error End If On Error Goto 0 ' Deactivate error handling End Sub
Cette procédure commence par la définition d'un programme de traitement des erreurs, suivi du code du programme en lui-même. À la fin du code du programme, le traitement des erreurs est désactivé par l'appel On Error Goto 0 et l'implémentation de la procédure se termine par la commande Exit Sub (à ne pas confondre avec End Sub).
L'exemple commence par vérifier si le numéro de l'erreur correspond à celui qui est attendu (stocké dans la constante imaginaire ExpectedErrorNo), puis traite l'erreur en conséquence. Si une autre erreur se produit, le système émet un avertissement. Il est important de contrôler le numéro de l'erreur, de manière à pouvoir détecter les erreurs inattendues.
L'appel On Error Goto 0 à la fin du code réinitialise les informations sur le statut de l'erreur (le code d'erreur dans les variables système Err) pour permettre l'identification d'une erreur ultérieure.
Content on this page is licensed under the Public Documentation License (PDL). |