Dalam skrip Python, pengguna menemui amaran "Data dipotong untuk lajur 'xxx'" semasa pertanyaan MySQL. Walau bagaimanapun, kod di bawah gagal menangkap amaran ini.
<code class="python">import MySQLdb try: cursor.execute(some_statement) # code steps always here: No Warning is trapped # by the code below except MySQLdb.Warning, e: # handle warnings, if the cursor you're using raises them except Warning, e: # handle warnings, if the cursor you're using raises them</code>
Amaran dalam MySQL tidak dibangkitkan sebagai pengecualian seperti ralat. Sebaliknya, mereka dilaporkan kepada stderr. Untuk memerangkap dan mengendalikan amaran, anda boleh menggunakan modul amaran. Berikut ialah coretan kod yang dikemas kini:
<code class="python">import warnings import MySQLdb # Configure warnings to be turned into exceptions warnings.filterwarnings('error', category=MySQLdb.Warning) # Execute the query and handle the warnings try: cursor.execute(some_statement) except MySQLdb.Warning: # Handle the warning as an exception except Exception: # Handle other exceptions</code>
Dengan menggunakan warnings.filterwarnings('error', category=MySQLdb.Warning), anda mengarahkan Python untuk menaikkan amaran sebagai pengecualian, membolehkan anda menangkapnya dalam percubaan/ kecuali sekat dan ambil tindakan yang sewajarnya.
Atas ialah kandungan terperinci Berikut ialah beberapa tajuk berdasarkan teks yang anda berikan, dengan mengingati format soalan: * **Bagaimanakah saya boleh Mengendalikan Amaran MySQL dalam Python?** (Terus dan jelas) * **Mengapa Kod Python Saya Tidak Ca. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!