Python Thử ngoại trừ
Khối try
cho phép bạn kiểm tra lỗi của một khối mã.
Khối except
cho phép bạn xử lý lỗi.
Khối else
cho phép bạn thực thi mã khi không có lỗi.
Khối finally
cho phép bạn thực thi mã, bất kể kết quả của khối thử và ngoại trừ.
Xử lý ngoại lệ
Khi xảy ra lỗi hoặc ngoại lệ như chúng ta gọi, Python thường sẽ dừng và tạo thông báo lỗi.
Những ngoại lệ này có thể được xử lý bằng câu lệnh try
:
Ví dụ
Khối try
sẽ tạo ra một ngoại lệ vì x
không được xác định:
try:
print(x)
except:
print("An exception occurred")
Hãy tự mình thử »Vì khối try phát sinh lỗi nên khối ngoại trừ sẽ được thực thi.
Nếu không có khối try, chương trình sẽ gặp sự cố và báo lỗi:
Nhiều ngoại lệ
Bạn có thể xác định bao nhiêu khối ngoại lệ tùy thích, ví dụ: nếu bạn muốn thực thi một khối mã đặc biệt cho một loại lỗi đặc biệt:
Ví dụ
In một thông báo nếu khối try gây ra NameError
và một thông báo khác cho các lỗi khác:
try:
print(x)
except NameError:
print("Variable x
is not defined")
except:
print("Something else went
wrong")
Hãy tự mình thử » Khác
Bạn có thể sử dụng từ khóa else
để xác định khối mã sẽ được thực thi nếu không có lỗi nào xảy ra:
Ví dụ
Trong ví dụ này, khối try
không tạo ra bất kỳ lỗi nào:
try:
print("Hello")
except:
print("Something went
wrong")
else:
print("Nothing went wrong")
Hãy tự mình thử »Cuối cùng
Khối finally
, nếu được chỉ định, sẽ được thực thi bất kể khối thử có phát sinh lỗi hay không.
Ví dụ
try:
print(x)
except:
print("Something went
wrong")
finally:
print("The 'try except' is finished")
Hãy tự mình thử »Điều này có thể hữu ích để đóng các đối tượng và dọn dẹp tài nguyên:
Ví dụ
Cố gắng mở và ghi vào một tập tin không thể ghi được:
try:
f = open("demofile.txt")
try:
f.write("Lorum Ipsum")
except:
print("Something went wrong when writing to the file")
finally:
f.close()
except:
print("Something went wrong when opening the
file")
Hãy tự mình thử »Chương trình có thể tiếp tục mà không cần mở đối tượng tệp.
Đưa ra một ngoại lệ
Là nhà phát triển Python, bạn có thể chọn đưa ra ngoại lệ nếu một điều kiện xảy ra.
Để ném (hoặc đưa ra) một ngoại lệ, hãy sử dụng từ khóa raise
.
Ví dụ
Đưa ra lỗi và dừng chương trình nếu x nhỏ hơn 0:
x = -1
if x < 0:
raise Exception("Sorry, no numbers below
zero")
Hãy tự mình thử » Từ khóa raise
được sử dụng để đưa ra một ngoại lệ.
Bạn có thể xác định loại lỗi nào sẽ xảy ra và văn bản sẽ in cho người dùng.
Ví dụ
Tăng TypeError nếu x không phải là số nguyên:
x = "hello"
if not type(x) is int:
raise TypeError("Only
integers are allowed")
Hãy tự mình thử »