Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimanakah Saya Boleh Mencipta dan Mengendalikan Pengecualian Tersuai dalam Python?
Pengendalian Pengecualian Tersuai dalam Python
Mencipta kelas pengecualian tersuai dalam Python membolehkan pembangun mengendalikan ralat tertentu dengan anggun dan memberikan maklumat tambahan tentang punca isunya.
Pengecualian Tersuai Pengisytiharan
Dalam Python moden, disyorkan untuk mentakrifkan pengecualian tersuai dengan melanjutkan kelas Pengecualian:
class MyException(Exception): pass
Pendekatan ini sejajar dengan standard untuk kelas pengecualian lain dan memastikan bahawa sebarang tambahan atribut yang disertakan dalam pengecualian boleh diakses oleh alatan yang mengendalikan pengecualian.
Pengecualian Tersuai Permulaan
Untuk menyimpan data tambahan dalam pengecualian, ganti kaedah __init__ dan hantar maklumat yang berkaitan sebagai parameter:
class ValidationError(Exception): def __init__(self, message, errors): super().__init__(message) self.errors = errors
Dengan cara ini, anda boleh mengakses data tambahan melalui e .ralat semasa mengendalikan pengecualian.
Mengelakkan BaseException.message
Dalam Python 2.5, kelas BaseException mempunyai mesej atribut khas yang menyimpan mesej pengecualian. Walau bagaimanapun, atribut ini telah ditamatkan dalam Python 2.6 dan tidak boleh digunakan. Sebaliknya, atribut mesej harus ditambahkan pada kelas pengecualian tersuai secara eksplisit.
Argumen Ajaib
Argumen args dalam pembina Exception digunakan untuk menyimpan argumen yang dihantar kepada pengecualian semasa permulaan. Walau bagaimanapun, anda tidak disyorkan untuk menggunakan args untuk menyimpan data tambahan, kerana ia mungkin mengelirukan dan tidak konsisten dengan kelas pengecualian lain.
Kaedah Mengatasi
Semasa mengatasi __init__ dan __str__ (atau __unicode__ dan __repr__ dalam Python 2) biasanya dicadangkan, tidak diperlukan untuk pengecualian tersuai yang mudah. Contoh yang disediakan menunjukkan cara membuat pengecualian tersuai tanpa mengatasi kaedah ini.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mencipta dan Mengendalikan Pengecualian Tersuai dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!