8. Utilisation du Yocto-Demo en PHP
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
yDisableExceptions()
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 logique: une méthode
méthode
get_currentValue
tous les cas, la valeur retournée sera du 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
en cas d'échec.
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.
42
à
chaque
ligne
pour commuter la librairie dans un mode où les exceptions de chaque
get_state()
retournera une valeur
YAPI_SUCCESS
et
. Ce sont les même informations qui auraient été
errMessage()
de
code.
Il
suffit
retournera une valeur
Y_CURRENTVALUE_INVALID
si tout va bien, et un code d'erreur différent
d'appeler
la
fonction
, une
Y_STATE_INVALID
, etc. Dans
www.yoctopuce.com