Python Academy · Pelajaran

Memahami Pengecualian

Pelajari maksud pengecualian dan cara Python mencetuskannya.

Pelajaran 1 daripada 414 langkah

Memahami Pengecualian ialah pelajaran Python Academy percuma di CoddyKit. Ini ialah pelajaran 1 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

Pengecualian ialah mekanisme Python untuk menandakan dan mengendalikan ralat semasa masa jalan.

Apakah itu Pengecualian?

Pengecualian ialah peristiwa yang mengganggu aliran normal atur cara. Python menaikkan pengecualian apabila ralat berlaku — contohnya, pembahagian dengan sifar.
# 1 / 0  # raises ZeroDivisionError
print('exceptions demo')

Hierarki Pengecualian

Semua pengecualian mewarisi daripada BaseException. Kebanyakan pengecualian yang berhadapan dengan pengguna mewarisi daripada Exception. Jenis khusus termasuk ValueError, TypeError, KeyError dan sebagainya.
print(issubclass(ValueError, Exception))
print(issubclass(Exception, BaseException))

Pengecualian Terbina Dalam yang Biasa

TypeError: jenis yang salah. ValueError: jenis betul, nilai salah. KeyError: kunci kamus tiada. IndexError: indeks senarai di luar julat. AttributeError: atribut sedemikian tiada.
# Examples:
# int('abc')       -> ValueError
# d['missing']     -> KeyError
# [1,2][9]         -> IndexError
print('common exceptions')

Jejak Balik

Apabila pengecualian tidak dikendalikan, Python mencetak jejak balik: tindanan panggilan dari bawah (yang paling terkini) ke atas. Pelajari cara membacanya.
def f(): return 1/0
# f()  # shows traceback
print('traceback demo')

Objek Pengecualian

Setiap pengecualian membawa mesej. str(e) atau e.args memberikan huraian. Aksesnya dalam except seperti berikut: except ValueError as e.
try:
    int('abc')
except ValueError as e:
    print(type(e).__name__, e)

Menangkap Berbilang Jenis

except (TypeError, ValueError): menangkap mana-mana satu daripada kedua-dua jenis dalam satu klausa.
def parse(x):
    try:
        return int(x)
    except (TypeError, ValueError):
        return None
print(parse('abc'), parse(None))

Kumpulan Pengecualian (3.11+)

Python 3.11 menambah ExceptionGroup untuk berbilang pengecualian yang berlaku serentak, yang dikendalikan dengan sintaks except*.
# Python 3.11+:
# try: ...
# except* ValueError as eg:
#     print(eg.exceptions)
print('exception group demo')

Amaran berbanding Pengecualian

import warnings; warnings.warn('msg') mengeluarkan amaran tanpa menaikkan pengecualian. Gunakannya untuk penamatan sokongan dan ralat ringan.
import warnings
warnings.warn('This is deprecated', DeprecationWarning)
print('warning issued')

sys.exc_info()

Dalam blok except, sys.exc_info() mengembalikan (type, value, traceback) — berguna untuk merekod butiran penuh pengecualian.
import sys
try:
    1/0
except:
    exc_type, exc_val, _ = sys.exc_info()
    print(exc_type, exc_val)

Rantaian Pengecualian

raise NewError('msg') from original_exc merantaikan pengecualian. Atribut __cause__ menghubungkannya.
try:
    int('abc')
except ValueError as e:
    raise RuntimeError('parse failed') from e

Semakan Pantas

Pengecualian apakah yang dinaikkan apabila Anda mengakses kamus dengan kunci yang tidak wujud?

Imbas Kembali

Pengecualian mewarisi daripada BaseException. Baca jejak balik dari bawah ke atas. Tangkap dengan except as e. Jenis biasa: ValueError, TypeError, KeyError, IndexError, AttributeError.

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 “Memahami Pengecualian” percuma?

Ya — teks penuh “Memahami Pengecualian” 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 “Memahami Pengecualian”?

Pelajari maksud pengecualian dan cara Python mencetuskannya. 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 1 daripada 4.

Berapa lamakah pelajaran “Memahami Pengecualian” 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