Rumah >pembangunan bahagian belakang >Tutorial Python >Penyelesaian kepada ralat puting beliung Pengecualian (\'Tidak mendapat pengecualian yang dijangkakan\')

Penyelesaian kepada ralat puting beliung Pengecualian (\'Tidak mendapat pengecualian yang dijangkakan\')

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBke hadapan
2024-02-29 21:55:32701semak imbas

. pengecualian yang diharapkan tidak dilemparkan. Mungkin program itu tidak berkelakuan seperti yang diharapkan, atau pengecualian sedang ditangkap dan tidak dihantar ke rangka kerja ujian.

Penyelesaian kepada ralat puting beliung Pengecualian (\Tidak mendapat pengecualian yang dijangkakan\)Cara menyelesaikan

Terdapat beberapa cara untuk menyelesaikan masalah ini:

Pastikan program berjalan seperti yang diharapkan. Semak sama ada kod itu betul dan sama ada terdapat kelemahan yang menyebabkan pengecualian tidak dibuang. Pastikan pengecualian tidak ditangkap. Dalam program, pengecualian ditangkap tanpa dihantar ke rangka kerja ujian. Pastikan tiada pernyataan yang menarik pengecualian dalam kod ujian anda. Gunakan kaedah AsyncTestCase.assertRaises() Tornado untuk menegaskan bahawa pengecualian telah dilemparkan. Kaedah ini memastikan bahawa pengecualian yang dijangkakan dilemparkan dalam kod tak segerak. Jika tiada pengecualian dilemparkan, atau pengecualian yang dilemparkan bukan pengecualian yang dijangkakan, adalah disyorkan untuk menyemak semula kod, nyahpepijat atur cara dan cuba memahami status dan gelagat atur cara semasa ia dijalankan.

Contoh Penggunaan

Ya, berikut ialah contoh ujian unit menggunakan kaedah AsyncTestCase.assertRaises() 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, '/')

Dalam contoh ini, kami mentakrifkan kelas MyHandler yang akan membuang pengecualian ValueError apabila kaedah get dilaksanakan. Kemudian kami mentakrifkan kaedah test_exception dalam MyTestCase Dalam kaedah ini, kami menggunakan kaedah self.assertRaises(ValueError, self.fetch, '/') untuk menegaskan bahawa pengecualian ValueError dibuang.

Jika program berjalan seperti biasa, ujian unit akan lulus. Jika pengecualian yang dijangkakan tidak dilemparkan, ralat "Pengecualian("Tidak mendapat pengecualian dijangka")" akan dilemparkan.

Atas ialah kandungan terperinci Penyelesaian kepada ralat puting beliung Pengecualian (\'Tidak mendapat pengecualian yang dijangkakan\'). Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:lsjlt.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam