Python Thử ngoại trừ
Khối try
này cho phép bạn kiểm tra một khối mã để tìm lỗi.
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 các khối try- và trừ.
Xử lý ngoại lệ
Khi một lỗi xảy ra, hoặc ngoại lệ như chúng ta gọi, Python thường sẽ dừng lại và tạo ra một thông báo lỗi.
Các ngoại lệ này có thể được xử lý bằng cách sử dụng try
câu lệnh:
Thí 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")
Vì khối try tạo ra lỗi, khối ngoại trừ sẽ được thực thi.
Nếu không có khối thử, chương trình sẽ gặp sự cố và gây ra lỗi:
Thí dụ
Câu lệnh này sẽ gây ra lỗi, vì x
không được định nghĩa:
print(x)
Nhiều trường hợp 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:
Thí dụ
In một thông báo nếu khối try tăng a 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")
Khác
Bạn có thể sử dụng else
từ khóa để xác định một khối mã sẽ được thực thi nếu không có lỗi nào được phát sinh:
Thí dụ
Trong ví dụ này, try
khối 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")
Cuối cùng
Khối finally
, nếu được chỉ định, sẽ được thực thi bất kể khối try có gây ra lỗi hay không.
Thí dụ
try:
print(x)
except:
print("Something went
wrong")
finally:
print("The 'try except' is finished")
Điều này có thể hữu ích để đóng các đối tượng và dọn dẹp tài nguyên:
Thí dụ
Cố gắng mở và ghi vào một tệp không thể ghi:
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")
Chương trình có thể tiếp tục mà không cần mở đối tượng tệp.
Nâng cao một ngoại lệ
Là một nhà phát triển Python, bạn có thể chọn ném một ngoại lệ nếu một điều kiện xảy ra.
Để ném (hoặc nâng) một ngoại lệ, hãy sử dụng raise
từ khóa.
Thí dụ
Phát sinh lỗi và dừng chương trình nếu x thấp hơn 0:
x = -1
if x < 0:
raise Exception("Sorry, no numbers below
zero")
Từ raise
khóa được sử dụng để nêu 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.
Thí 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")