Gestion Des Erreurs - Yoctopuce Yocto-VOC-V3 Mode D'emploi

Table des Matières

Publicité

public
class
Demo
{
public
string
public override async Task<int> Run()
{
YModule
m;
try {
await YAPI.RegisterHub(HubURL);
WriteLine("Device
m
= YModule.FirstModule();
while
(m
!= null) {
WriteLine(await m.get_serialNumber()
m
= m.nextModule();
}
} catch
(YAPI_Exception
WriteLine("Error:"
}
YAPI.FreeAPI();
return 0;
}
}
}

18.7. 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
Dans la librairie Universal Windows Platform, le traitement d'erreur est implémenté au moyen
d'exceptions. Vous devrez donc intercepter et traiter correctement ces exceptions si vous souhaitez
avoir un projet fiable qui ne crashera pas des que vous débrancherez un module.
Les exceptions lancées de la librairie sont toujours de type YAPI_Exception, ce qui permet
facilement de les séparer des autres exceptions dans un bloc
Exemple:
try {
....
} catch
(YAPI_Exception
Debug.WriteLine("Exception from Yoctopuce lib:"
} catch
(Exception
Debug.WriteLine("Other exceptions :"
}
www.yoctopuce.com
:
DemoBase
HubURL
{ get; set; }
list");
+
" ("
+ await m.get_productName() + ")");
ex) {
+ ex.Message);
et on suppose ensuite qu'il va y rester pendant la fraction de
isOnline()
ex) {
ex) {
18. Utilisation du Yocto-VOC-V3 avec Universal Windows Platform
, qui pourrait faire planter le programme.
try{...} catch{...}
+ ex.Message);
+ ex.Message);
.
147

Publicité

Table des Matières
loading

Table des Matières