Heim >Backend-Entwicklung >Python-Tutorial >Lösung für die Tornado-Fehler-Ausnahme („Erwartete Ausnahme wurde nicht erhalten')

Lösung für die Tornado-Fehler-Ausnahme („Erwartete Ausnahme wurde nicht erhalten')

WBOY
WBOYnach vorne
2024-02-29 21:55:32656Durchsuche

Lösung für die Tornado-Fehler-Ausnahme („Erwartete Ausnahme wurde nicht erhalten)

Der Grund, warum der Fehler

"Exception("Did not getclaimedException")" in Tornado in Python erscheint, ist: Unit-Tests mit Tornados TestFramework Dieser Fehler tritt auf, wenn Die erwartete Ausnahme wird nicht ausgelöst. Möglicherweise verhält sich das Programm nicht wie erwartet oder die Ausnahme wird abgefangen und nicht an das Test-Framework weitergeleitet.

So lösen Sie es

Es gibt mehrere Möglichkeiten, dieses Problem zu lösen:

Stellen Sie sicher, dass das Programm wie erwartet läuft. Überprüfen Sie, ob der Code korrekt ist und ob es Lücken gibt, die dazu führen, dass Ausnahmen nicht ausgelöst werden.

Stellen Sie sicher, dass Ausnahmen nicht abgefangen werden. Im Programm wird die Ausnahme abgefangen, ohne an das Testframework übergeben zu werden. Stellen Sie sicher, dass Ihr Testcode keine ausnahmeabfangenden Anweisungen enthält.

Verwenden Sie die Methode AsyncTestCase.assertRaises() von Tornado, um zu bestätigen, dass eine Ausnahme ausgelöst wurde. Diese Methode stellt sicher, dass erwartete Ausnahmen im asynchronen Code ausgelöst werden.

Wenn keine Ausnahme ausgelöst wird oder die ausgelöste Ausnahme nicht die erwartete Ausnahme ist, wird empfohlen, den Code erneut zu überprüfen, das Programm zu debuggen und zu versuchen, den Status und das Verhalten des Programms während der Ausführung zu verstehen.

Anwendungsbeispiel

Ja, hier ist ein Beispiel für Unit-Tests mit der AsyncTestCase.assertRaises()-Methode von Tornado:

import tornado.testing
import tornado.WEB

class MyHandler(tornado.web.RequestHandler):
async def get(self):
raise ValueError("This is a test exception")

class MyTestCase(tornado.testing.AsyncTestCase):
async def test_exception(self):
app = tornado.web.Application([(r"/", MyHandler)])
self.assertRaises(ValueError, self.fetch, '/')

In diesem Beispiel definieren wir eine MyHandler-Klasse, die eine ValueError-Ausnahme auslöst, wenn die get-Methode ausgeführt wird. Dann definieren wir eine test_Exception-Methode in MyTestCase. In dieser Methode verwenden wir die Methode self.assertRaises(ValueError, self.fetch, '/'), um zu bestätigen, dass eine ValueError-Ausnahme ausgelöst wird.

Wenn das Programm normal läuft, wird der Unit-Test bestanden. Wenn die erwartete Ausnahme nicht ausgelöst wird, wird der Fehler „Exception(„Erwartete Ausnahme wurde nicht abgerufen“)“ ausgelöst.

Das obige ist der detaillierte Inhalt vonLösung für die Tornado-Fehler-Ausnahme („Erwartete Ausnahme wurde nicht erhalten'). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:lsjlt.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen