Python Academy · Pelajaran

try / except / else / finally

Susun blok pengendalian pengecualian untuk apa-apa keadaan.

Pelajaran 2 daripada 414 langkah

try / except / else / finally ialah pelajaran Python Academy percuma di CoddyKit. Ini ialah pelajaran 2 daripada 4. Anda boleh membaca keseluruhan pelajaran di bawah secara percuma — kemudian berlatih secara praktikal dalam pelayar menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran Python Academy, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus Python Academy merangkumi sejumlah 4 pelajaran.

Pengenalan

try/except/else/finally Python memberi Anda kawalan penuh terhadap pengendalian ralat dan pembersihan.

try/except Asas

try: risky_code() except ExceptionType: handle() — Python melaksanakan blok except hanya apabila jenis pengecualian itu dinaikkan.
try:
    x = int('abc')
except ValueError:
    print('not a number')

Menangkap Objek Pengecualian

except ValueError as e: mengikat pengecualian kepada e. Gunakan str(e) atau e.args untuk mendapatkan mesej.
try:
    int('oops')
except ValueError as e:
    print(f'Error: {e}')

Menangkap Berbilang Pengecualian

except (TypeError, ValueError) as e: menangkap mana-mana satu daripada kedua-dua jenis.
for val in ['abc', None, 42]:
    try:
        print(int(val))
    except (TypeError, ValueError) as e:
        print(f'skipping {val!r}: {e}')

except Kosong (elakkan)

except: (tiada jenis) menangkap EVERYTHING termasuk KeyboardInterrupt dan SystemExit. Hampir sentiasa merupakan kesilapan — sentiasa nyatakan jenis.
try:
    risky = 1/0
except ZeroDivisionError:
    print('division error')  # specific

Berbilang Klausa except

Anda boleh mempunyai berbilang blok except, setiap satunya mengendalikan jenis yang berbeza. Python mencubanya mengikut turutan.
def process(val):
    try:
        return 10 / int(val)
    except ValueError:
        print('not a number')
    except ZeroDivisionError:
        print('division by zero')
process('abc')
process('0')

Klausa else

try/except/else: else hanya dijalankan jika TIADA pengecualian dinaikkan. Gunakannya untuk kod yang sepatutnya dijalankan apabila berjaya.
try:
    x = int('42')
except ValueError:
    print('bad input')
else:
    print('parsed:', x)

Klausa finally

finally: sentiasa dijalankan — selepas try berjaya, selepas except, malah selepas return atau break. Sangat sesuai untuk pembersihan.
def read_file(path):
    f = None
    try:
        f = open(path)
        return f.read()
    except FileNotFoundError:
        return None
    finally:
        if f: f.close()
print(read_file('/nonexistent'))

finally dengan return

Jika return dan finally wujud serentak, finally dijalankan dahulu tetapi nilai pulangan daripada finally diutamakan. Berhati-hatilah.
def demo():
    try:
        return 'try'
    finally:
        return 'finally'  # overrides!
print(demo())

Blok try Bersarang

Blok try boleh disarangkan. Pengecualian dalaman merebak ke luar jika tidak ditangkap oleh except dalaman.
try:
    try:
        x = 1/0
    except ValueError:
        print('inner')
except ZeroDivisionError:
    print('outer caught it')

Merekod Pengecualian

import logging; logging.exception('msg') merekod jejak balik penuh. Sangat sesuai dalam kod produksi.
import logging
try:
    1/0
except ZeroDivisionError:
    logging.exception('Caught an error')

Semakan Pantas

Klausa manakah yang dijalankan tanpa mengira sama ada pengecualian berlaku?

Imbas Kembali

try/except menangkap ralat. else dijalankan apabila berjaya. finally sentiasa dijalankan (pembersihan). Tangkap jenis khusus; elakkan except kosong. Gunakan as e untuk mengakses pengecualian.

Teruskan

Syabas! Teruskan ke pelajaran seterusnya untuk meneruskan kemajuan Anda.
Percuma untuk bermula

Pelajari Python dengan tutor kecerdasan buatan — percuma

Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.

Kursus
76
Pelajaran
320

Soalan Lazim

Adakah pelajaran “try / except / else / finally” percuma?

Ya — teks penuh “try / except / else / finally” boleh dibaca secara percuma di web ini. Untuk berlatih secara interaktif menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7, serta membuka kunci baki kursus Python Academy, tingkat taraf kepada CoddyKit PRO. Kursus Python Academy merangkumi sejumlah 4 pelajaran.

Apakah yang akan saya pelajari dalam “try / except / else / finally”?

Susun blok pengendalian pengecualian untuk apa-apa keadaan. Anda berlatih Python Academy menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.

Adakah saya memerlukan pengalaman untuk memulakan Python Academy?

Tiada pengalaman terdahulu diperlukan. Pembelajaran Python Academy di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 2 daripada 4.

Berapa lamakah pelajaran “try / except / else / finally” diambil?

Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.

Bolehkah saya menulis dan menjalankan kod dalam pelajaran Python Academy ini?

Ya. Setiap pelajaran Python Academy menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.

Semua pelajaran dalam kursus ini

  1. Memahami Pengecualian
  2. try / except / else / finally
  3. Mencetuskan dan Mencetuskan Semula Pengecualian
  4. Kelas Pengecualian Tersuai
← Kembali ke Python Academy