Meningkatkan pengecualian membolehkan pengendalian ralat dan gangguan terkawal dalam kod Python. Artikel ini menunjukkan cara untuk menaikkan pengecualian khusus secara manual, membolehkannya ditangkap dan dikendalikan dengan sewajarnya.
Untuk menimbulkan pengecualian, gunakan kata kunci raise diikuti dengan kelas pengecualian dan mana-mana tersuai hujah mesej. Contohnya:
raise ValueError('Invalid input value.')
Pilih Kelas Pengecualian Khusus:
Gunakan pembina Pengecualian yang paling spesifik yang sesuai dengan situasi, sebagai pengecualian generik boleh menyembunyikan pepijat dan menghalang khusus pengendalian.
Sertakan Mesej Deskriptif:
Sediakan mesej ralat yang khusus dan bermakna untuk membantu mendiagnosis isu.
Elakkan Mengubah Suai Pengecualian:
Jika anda perlu mengubah suai pengecualian, gunakan sys.exc_info() untuk mengekalkan tindanan jejak. Walau bagaimanapun, ini biasanya tidak disyorkan dan boleh memperkenalkan isu keserasian antara Python 2 dan 3.
Gunakan klausa kecuali:
Apabila mengendalikan pengecualian, gunakan klausa kecuali untuk menangkap jenis pengecualian tertentu.
Kenaikan gaji untuk Menaikkan Semula:
Untuk menaikkan semula pengecualian sambil mengekalkan surih tindanan, gunakan pernyataan naik kosong:
try: # Code that may raise an exception except SpecificException: logger.error(error) raise
Elakkan kaedah ini untuk menaikkan pengecualian:
def check_input(value): if not isinstance(value, int): raise TypeError('Input must be an integer.') if value < 0: raise ValueError('Input must be positive.') try: check_input(-1) except TypeError as error: print('Wrong input type:', error) except ValueError as error: print('Invalid input value:', error)
Buat jenis ralat tersuai untuk mengendalikan khusus senario:
class MyCustomError(Exception): '''This error represents a specific problem with my code.'''
Penggunaan:
raise MyCustomError('An unexpected issue occurred.') except MyCustomError as error: print('Custom error raised:', error)
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Meningkatkan Pengecualian Secara Manual dalam Python dan Mengendalikannya dengan Berkesan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!