Hàm try() được sử dụng trong việc xử lý lỗi và ngoại lệ trong Python
Có hai kiểu lỗi:
– Syntax Error: Còn được gọi là Parsing Errors (lỗi phân tích cú pháp), là loại lỗi cơ bản nhất, được đưa ra khi Python parser (trình phân tích cú pháp của Python) không thể hiểu được một dòng code cụ thể nào đó.
– Exception: Là những lỗi mà được phát hiện trong khi chương trình đang thực thi, ví dụ như lỗi ZeroDivisionError – Lỗi chia cho 0.
Danh sách các Exception Errors – các lỗi ngoại lệ:
– IOError: Nếu file không thể được mở ra
– KeyboardInterrupt: Khi người dùng nhấn vào một phím không được yêu cầu
– ValueError: Khi built-in function (hàm được tích hợp sẵn trong Python) nhận được một đối số sai (wrong argument)
– EOFError: Nếu đọc được ký tự End-Of-File (tức là ký tự kết thúc file) mà trước đó không đọc được bất cứ dữ liệu nào.
– ImportError: Nếu không thể tìm được module đang được import vào chương trình.
Tiếp theo, chúng ta sẽ tìm hiểu về cách để xử lý các lỗi này bên trong code Python của mình. Ở đây, chúng ta sẽ cần tới cặp câu lệnh try-except.
Cú pháp cơ bản:
Basic Syntax :
try:
// Code
except:
// Code
Hàm try() hoạt động như thế nào?
– Đầu tiên, câu lệnh try đầu tiên sẽ được thực thi, tức là phần code nằm giữa mệnh đề try và mệnh đề except sẽ được thực thi đầu tiên.
– Nếu không có ngoại lệ nào được đưa ra, thì chỉ có mệnh đề try sẽ chạy, còn mệnh đề except sẽ không chạy mà đi vào trạng thái finished (đã hoàn thành) luôn.
– Nếu có bất kỳ ngoại lệ nào xuất hiện, mệnh đề try sẽ được bỏ qua, và mệnh đề except sẽ chạy.
– Nếu có bất kỳ ngoại lệ nào xuất hiện, nhưng mệnh đề except bên trong code không xử lý nó, thì nó sẽ được truyền lại lên trên cho mệnh đề try ở bên ngoài. Nếu ngoại lệ vẫn không được xử lý, thì chương trình sẽ dừng thực thi.
– Một câu lệnh try có thể đi kèm với nhiều hơn một mệnh đề except.
Ví dụ 1: Không có ngoại lệ xuất hiện, mệnh đề try sẽ chạy
# -----------------------------------------------------------
#Cafedev.vn - Kênh thông tin IT hàng đầu Việt Nam
#@author cafedevn
#Contact: cafedevn@gmail.com
#Fanpage: https://www.facebook.com/cafedevn
#Group: https://www.facebook.com/groups/cafedev.vn/
#Instagram: https://instagram.com/cafedevn
#Twitter: https://twitter.com/CafedeVn
#Linkedin: https://www.linkedin.com/in/cafe-dev-407054199/
#Pinterest: https://www.pinterest.com/cafedevvn/
#YouTube: https://www.youtube.com/channel/UCE7zpY_SlHGEgo67pHxqIoA/
# -----------------------------------------------------------
# Python code to illustrate
# working of try()
def divide(x, y):
try:
# Floor Division : Gives only Fractional Part as Answer
result = x // y
print("Yeah ! Your answer is :", result)
except ZeroDivisionError:
print("Sorry ! You are dividing by zero ")
# Look at parameters and note the working of Program
divide(3, 2)
– Kết quả in ra là:
('Yeah ! Your answer is :', 1)
Ví dụ 2: Có một ngoại lệ, vì vậy chỉ có mệnh đề except sẽ chạy
# Python code to illustrate
# working of try()
def divide(x, y):
try:
# Floor Division : Gives only Fractional Part as Answer
result = x // y
print("Yeah ! Your answer is :", result)
except ZeroDivisionError:
print("Sorry ! You are dividing by zero ")
# Look at parameters and note the working of Program
divide(3, 0)
– Kết quả in ra là:
Sorry ! You are dividing by zero
Nguồn và Tài liệu tiếng anh tham khảo:
Tài liệu từ cafedev:
- Full series tự học Python từ cơ bản tới nâng cao tại đây nha.
- Ebook về python tại đây.
- Các series tự học lập trình khác
Nếu bạn thấy hay và hữu ích, bạn có thể tham gia các kênh sau của cafedev để nhận được nhiều hơn nữa:
Chào thân ái và quyết thắng!