Gestion Des Erreurs - Yoctopuce Yocto-Serial Mode D'emploi

Table des Matières

Publicité

13. Utilisation du Yocto-Serial en VisualBasic .NET
Enumeration des modules
Obtenir la liste des modules connectés se fait à l'aide de la fonction
le premier module trouvé, il suffit ensuite d'appeler la fonction
trouver les modules suivants, et ce tant que la réponse n'est pas un
exemple listant les module connectés
Module
Module1
Sub Main()
Dim
M
As
ymodule
Dim
errmsg
As
REM
Setup the API
If
YAPI.RegisterHub("usb",
Console.WriteLine("RegisterHub error: "
End
End If
Console.WriteLine("Device
M
= YModule.FirstModule()
While
M
IsNot Nothing
Console.WriteLine(M.get_serialNumber() +
M
= M.nextModule()
End While
YAPI.FreeAPI()
End Sub
End Module

13.5. Gestion des erreurs

Lorsque vous implémentez un programme qui doit interagir avec des modules USB, vous ne pouvez
pas faire abstraction de la gestion des erreurs. Il y aura forcément une occasion où un utilisateur
aura débranché le périphérique, soit avant de lancer le programme, soit même en pleine opération.
La librairie Yoctopuce est prévue pour vous aider à supporter ce genre de comportements, mais
votre code doit néanmoins être fait pour se comporter au mieux pour interpréter les erreurs signalées
par la librairie.
La manière la plus simple de contourner le problème est celle que nous avons employé pour les
petits exemples précédents de ce chapitre: avant d'accéder à un module, on vérifie qu'il est en ligne
avec la méthode
isOnline()
seconde nécessaire à exécuter les lignes de code suivantes. Ce n'est pas parfait, mais ça peut
suffire dans certains cas. Il faut toutefois être conscient qu'on ne peut pas totalement exclure une
erreur se produisant après le
manière de l'éviter est d'implémenter une des deux techniques de gestion des erreurs décrites ci-
dessous.
La méthode recommandée par la plupart des langages de programmation pour la gestion des
erreurs imprévisibles est l'utilisation d'exceptions. C'est le comportement par défaut de la librairie
Yoctopuce. Si une erreur se produit alors qu'on essaie d'accéder à un module, la librairie va lancer
une exception. Dans ce cas, de trois choses l'une:
• Si votre code attrape l'exception au vol et la gère, et tout se passe bien.
• Si votre programme tourne dans le debugger, vous pourrez relativement facilement déterminer
où le problème s'est produit, et voir le message explicatif lié à l'exception.
• Sinon... l'exception va crasher votre programme, boum!
Comme cette dernière situation n'est pas la plus souhaitable, la librairie Yoctopuce offre une autre
alternative pour la gestion des erreurs, permettant de faire un programme robuste sans devoir
attraper
les
exceptions
YAPI.DisableExceptions()
chaque fonction sont systématiquement remplacées par des valeurs de retour particulières, qui
peuvent être testées par l'appelant lorsque c'est pertinent. Le nom de la valeur de retour en cas
94
String
=
""
to
use local USB devices
errmsg) <>
list")
et on suppose ensuite qu'il va y rester pendant la fraction de
isOnline()
à
chaque
pour commuter la librairie dans un mode où les exceptions de
nextModule()
YAPI_SUCCESS
Then
+ errmsg)
" ("
+ M.get_productName() + ")")
, qui pourrait faire planter le programme. La seule
ligne
de
code.
Il
qui renvoie
yFirstModule()
de cet objet pour
. Ci-dessous un petit
Nothing
suffit
d'appeler
la
www.yoctopuce.com
fonction

Publicité

Table des Matières
loading

Table des Matières