À propos de la gestion des erreurs lors du développement d'applications PEPPER Un résumé de la façon de gérer avec PythonBox.
Ceci est un article de diversion de notre blog Utage.
http://utage.headwaters.co.jp/blog/?p=4656
Lorsqu'une erreur se produit dans PythonBox En cas d'erreur non gérée, l'application se terminera immédiatement.
Actuellement, si le robot est arrêté de force, Il semble à l'utilisateur que cela s'est terminé soudainement sans aucun avertissement, donc Assurez-vous de le manipuler et de le dire à l'utilisateur.
En cas d'erreur détectée par Choregraphe, La case dans laquelle l'erreur s'est produite devient rouge. C'est également le cas avec SyntaxError et ainsi de suite.
Il existe plusieurs façons de gérer les erreurs dans PythonBox, donc Je vais expliquer ces méthodes.
Comme la gestion des erreurs en Python général Vous pouvez gérer l'erreur en l'écrivant avec try: except:.
class MyClass(GeneratedClass):
def __init__(self):
GeneratedClass.__init__(self)
def onLoad(self):
pass
def onUnload(self):
pass
def onInput_onStart(self):
try:
raise Exception, "Raise Error."
except Exception as e:
self.log(str(e))
def onInput_onStop(self):
self.onUnload()
self.onStopped()
Dans l'exemple ci-dessus, il s'agit simplement de cracher des journaux, Je ne peux rien couvrir, mais c'est le processus que je fais en essayant L'application ne plantera pas même si une exception se produit.
Dans le cas d'une utilisation réelle, je pense qu'il sera utilisé plus souvent comme suit.
class MyClass(GeneratedClass):
def __init__(self):
GeneratedClass.__init__(self)
def onLoad(self):
pass
def onUnload(self):
pass
def onInput_onStart(self):
try:
#Traitement pouvant provoquer une erreur
self.onSucceeded()
except Exception:
self.onFailed()
def onInput_onStop(self):
self.onUnload()
self.onStopped()
En changeant la sortie lorsqu'elle est augmentée comme ci-dessus Vous pouvez gérer les erreurs dans PythonBox.
Ajout de la sortie onError sur l'écran Edit Box
Si tu fais ça Il sera généré à partir de la sortie onError lorsqu'une exception se produit dans PythonBox.
class MyClass(GeneratedClass):
def __init__(self):
GeneratedClass.__init__(self)
def onLoad(self):
pass
def onUnload(self):
pass
def onInput_onStart(self):
raise Exception, "Raise Error."
def onInput_onStop(self):
self.onUnload()
self.onStopped()
De plus, en définissant le Type de onError sur une chaîne de caractères, Vous pouvez générer des arguments tels que le message d'erreur de l'exception levée sous forme de chaîne de caractères.
Recommended Posts