Yoctopuce Yocto-Thermocouple Mode D'emploi page 61

Table des Matières

Publicité

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
d'erreur pour chaque fonction est systématiquement documenté dans la référence de la librairie. Il
suit
toujours
la
même
NomDeClasse.STATE_INVALID
NomDeClasse.CURRENTVALUE_INVALID
type attendu, et ne sera pas un pointeur nul qui risquerait de faire crasher votre programme. Au pire,
si vous affichez la valeur sans la tester, elle sera hors du cadre attendu pour la valeur retournée.
Dans le cas de fonctions qui ne retournent à priori pas d'information, la valeur de retour sera
si tout va bien, et un code d'erreur différent en cas d'échec.
YAPI.SUCCESS
Quand vous travaillez sans les exceptions, il est possible d'obtenir un code d'erreur et un message
expliquant l'origine de l'erreur en le demandant à l'objet qui a retourné une erreur à l'aide des
méthodes
errType()
associées à l'exception si elles avaient été actives.
www.yoctopuce.com
et on suppose ensuite qu'il va y rester pendant la fraction de
, qui pourrait faire planter le programme. La seule
isOnline()
à
chaque
ligne
pour commuter la librairie dans un mode où les exceptions de
logique:
une
méthode
, une méthode
, etc. Dans tous les cas, la valeur retournée sera du
et
. Ce sont les même informations qui auraient été
errMessage()
10. Utilisation du Yocto-Thermocouple en C#
de
code.
Il
suffit
get_state()
get_currentValue
d'appeler
la
fonction
retournera
une
valeur
retournera une valeur
55

Publicité

Table des Matières
loading

Table des Matières