Pengendalian Pengecualian Python: Jalan Menuju Kemajuan daripada Novis kepada Pakar

王林
Lepaskan: 2024-02-25 16:01:06
ke hadapan
1083 orang telah melayarinya

Python 异常处理:从小白到专家的进阶之路

1. Fahami pengecualian

Pengecualian merujuk kepada ralat atau situasi tidak normal yang berlaku semasa program berjalan, yang mungkin disebabkan oleh pelbagai sebab, seperti:

  • Ralat sintaks: Terdapat ralat sintaks dalam kod yang menghalang program daripada menyusun atau melaksanakan.
  • Ralat masa jalan: Ralat berlaku apabila kod sedang berjalan, seperti pembahagian dengan sifar, indeksdi luar julat, fail tidak wujud, dsb.
  • Ralat logik: Logik kod tidak betul, menyebabkan tingkah laku program tidak seperti yang diharapkan.

2. Mekanisme pengendalian pengecualian Python

python menyediakan mekanisme pengendalian pengecualian untuk mengendalikan pengecualian yang berlaku semasa program berjalan Ia terutamanya termasuk tryexceptfinally tiga pernyataan.

  • try Blok penyata digunakan untuk menentukan kod untuk cuba dilaksanakan.
  • Blok pernyataan
  • except digunakan untuk menentukan kod yang akan dilaksanakan apabila pengecualian berlaku dalam blok pernyataan except 语句块用于指定当 try.
  • Blok pernyataan
  • akhirnya digunakan untuk menentukan kod yang mesti dilaksanakan tanpa mengira sama ada pengecualian berlaku dalam blok pernyataan finally 语句块用于指定无论 try.

3. Contoh kod

# 导入异常处理模块
import sys

# 定义一个函数来读取文件
def read_file(filename):
# 使用 try 语句块来捕获异常
try:
# 打开文件
with open(filename, "r") as f:
# 读取文件内容
data = f.read()
# 关闭文件
f.close()
# 使用 except 语句块来处理异常
except FileNotFoundError:
# 文件不存在时,打印错误信息
print("Error: File not found.")
# 使用 finally 语句块来释放资源
finally:
# 无论是否发生异常,都关闭文件
f.close()

# 调用函数来读取文件
read_file("data.txt")
Salin selepas log masuk

Dalam contoh di atas, blok pernyataan try 语句块用于尝试打开和读取文件,except 语句块用于处理文件不存在的异常情况,finally digunakan untuk cuba membuka dan membaca fail, blok pernyataan except digunakan untuk mengendalikan pengecualian apabila fail tidak wujud, dan akhirnya blok pernyataan digunakan Tidak kira sama ada pengecualian berlaku, fail ditutup.

4. Jenis pengecualian biasa

Python Terdapat banyak jenis pengecualian terbina dalam yang mewakili ralat atau keadaan pengecualian yang berbeza, seperti:

  • NameError: Menunjukkan pembolehubah atau fungsi yang tidak ditentukan.
  • TypeError: Menunjukkan jenis tidak padan.
  • ValueError: Menunjukkan nilai yang tidak sah.
  • IndexError: Menunjukkan bahawa indeks berada di luar julat.
  • KeyError: Menunjukkan kunci yang tidak wujud dalam kamus.

Pengaturcara boleh mendapatkan maklumat pengecualian yang sedang berlaku melalui fungsi sys.exc_info(), dan menggunakan kaedah pengendalian yang berbeza mengikut jenis pengecualian yang berbeza.

5. Jenis pengecualian tersuai

Selain jenis pengecualian terbina dalam, pengaturcara juga boleh menyesuaikan jenis pengecualian untuk mengendalikan ralat atau syarat pengecualian tertentu. Sebagai contoh, anda boleh menentukan jenis pengecualian MyError untuk mengendalikan ralat tersuai yang berlaku dalam aplikasi anda:

class MyError(Exception):
def __init__(self, message):
self.message = message

def my_function():
# 抛出自定义异常
raise MyError("An error occurred.")

try:
my_function()
except MyError as e:
# 处理自定义异常
print(e.message)
Salin selepas log masuk

Dalam contoh di atas, MyError 是一个自定义的异常类型,它继承自 Exception 类。当 my_function() 函数抛出 MyError 异常时,try ialah jenis pengecualian tersuai yang diwarisi daripada kelas Exception. Apabila fungsi my_function() melontarkan pengecualian

, blok pernyataan

menangkap pengecualian dan mencetak maklumat pengecualian.

6

Mekanisme pengendalian pengecualian Python ialah salah satu kemahiran utama yang mesti dikuasai oleh pengaturcara semasa menulis kod. Ia boleh membantu pengaturcara mengendalikan ralat dan pengecualian yang berlaku semasa program berjalan dan mengelakkan ranap program.

Atas ialah kandungan terperinci Pengendalian Pengecualian Python: Jalan Menuju Kemajuan daripada Novis kepada Pakar. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:lsjlt.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan