Informationen zur Fehlerbehandlung bei der Entwicklung von PEPPER-Apps Eine Zusammenfassung des Umgangs mit PythonBox.
Dies ist ein Ablenkungsartikel aus unserem Utage-Blog.
http://utage.headwaters.co.jp/blog/?p=4656
Wenn in PythonBox ein Fehler auftritt Im Falle eines nicht behandelten Fehlers wird die Anwendung sofort beendet.
Derzeit, wenn der Roboter gewaltsam beendet wird, Es scheint dem Benutzer, dass es plötzlich ohne Vorwarnung endete, also Stellen Sie sicher, dass Sie damit umgehen und informieren Sie den Benutzer.
Im Falle eines von Choregraphe festgestellten Fehlers, Das Feld, in dem der Fehler aufgetreten ist, wird rot. Dies ist auch bei SyntaxError usw. der Fall.
Es gibt also verschiedene Möglichkeiten, Fehler in PythonBox zu behandeln Ich werde diese Methoden erklären.
Wie Fehlerbehandlung im Allgemeinen Python Sie können den Fehler behandeln, indem Sie ihn mit try: außer: schreiben.
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()
Im obigen Beispiel werden nur Protokolle gespuckt. Ich kann nichts abdecken, aber es ist der Prozess, den ich versuche Die App stürzt auch dann nicht ab, wenn eine Ausnahme auftritt.
Im Falle der tatsächlichen Verwendung denke ich, dass es wie folgt häufiger verwendet wird.
class MyClass(GeneratedClass):
def __init__(self):
GeneratedClass.__init__(self)
def onLoad(self):
pass
def onUnload(self):
pass
def onInput_onStart(self):
try:
#Verarbeitung, die einen Fehler verursachen kann
self.onSucceeded()
except Exception:
self.onFailed()
def onInput_onStop(self):
self.onUnload()
self.onStopped()
Durch Ändern der Ausgabe, wenn wie oben angehoben Sie können Fehler in PythonBox behandeln.
OnError-Ausgabe auf dem Bildschirm "Bearbeitungsfeld" hinzugefügt
Wenn du das tust Es wird von der onError-Ausgabe ausgegeben, wenn in PythonBox eine Ausnahme auftritt.
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()
Indem Sie den Typ von onError auf eine Zeichenfolge setzen, Sie können Argumente wie die Fehlermeldung der ausgelösten Ausnahme als Zeichenfolge ausgeben.
Recommended Posts