Error trong Python có thể có hai loại, tức là lỗi cú pháp và Exceptions. Error là các sự cố trong một chương trình do đó chương trình sẽ dừng thực thi. Mặt khác, các Exceptions được đưa ra khi một số sự kiện nội bộ xảy ra làm thay đổi quy trình bình thường của chương trình.
Lưu ý: Để biết thêm thông tin, hãy tham khảo Error và Exceptions trong Python
Một số Error Exceptions phổ biến là:
- IOError: nếu tệp không thể mở được
- KeyboardInterrupt: khi người dùng nhấn một phím không cần thiết
- ValueError: khi chức năng tích hợp nhận được một đối số sai
- EOFError: nếu End-Of-File mà không đọc bất kỳ dữ liệu nào
- ImportError: nếu không thể tìm thấy mô-đun
Try Except trong Python
Câu lệnh try và Exceptions được sử dụng để xử lý các Error này trong code của chúng tôi bằng Python. Khối thử được sử dụng để kiểm tra một số mã để tìm Error, tức là mã bên trong khối thử sẽ thực thi khi không có Error trong chương trình. Trong khi đó, mã bên trong khối except sẽ thực thi bất cứ khi nào chương trình gặp một số Error trong khối try trước đó.
Cú pháp:
try: # viết coe Code except: # nếu xảy ra lỗi # chạy code
try() hoạt động như thế nào?
Đầu tiên, mệnh đề try được thực thi, tức là mã giữa mệnh đề try và except.
Nếu không có Exceptions thì chỉ có mệnh đề try chạy, Exceptions mệnh đề kết thúc.
Nếu có bất kỳ Exceptions nào xảy ra, mệnh đề try sẽ bị bỏ qua và mệnh đề Exceptions sẽ chạy.
Nếu có bất kỳ Exceptions nào xảy ra, nhưng mệnh đề Exceptions trong mã không xử lý nó, thì nó sẽ được chuyển sang các câu lệnh thử bên ngoài. Nếu Exceptions không được xử lý, thì quá trình thực thi sẽ dừng lại.
Một câu lệnh try có thể có nhiều hơn một mệnh đề except
Code 1: Không có Exceptions, vì vậy mệnh đề thử sẽ chạy.
# Mã Python để minh họa # hoạt động của try() def divide(x, y): try: # Phân chia tầng : Chỉ đưa ra Phần phân số làm câu trả lời result = x // y print("kết quả :", result) except ZeroDivisionError: print("chia cho số 0 ") # Xem thông số và lưu ý hoạt động của Chương trình divide(3, 2)
Code 2: Có một Exceptions nên chỉ điều khoản Exceptions sẽ chạy.
# Mã Python để minh họa # hoạt động của try() def divide(x, y): try: # Phân chia tầng : Chỉ đưa ra Phần phân số làm câu trả lời result = x // y print("kết quả là:", result) except ZeroDivisionError: print("chia cho số 0 ") # Xem thông số và lưu ý hoạt động của Chương trình divide(3, 0)
Else Clause
Trong python, bạn cũng có thể sử dụng mệnh đề else trên khối try-Exceptions phải có sau tất cả các mệnh đề Exceptions. Mã chỉ nhập vào khối khác nếu mệnh đề thử không đưa ra Exceptions.
Cú pháp:
try: # Some Code except: # Executed if error in the # try block else: # execute if no exception
Code:
# Chương trình mô tả mệnh đề other với try-ngoại trừ # Hàm trả về a/b def AbyB(a , b): try: c = ((a+b) // (a-b)) except ZeroDivisionError: print ("a/b kết quả là 0") else: print (c) # Chương trình điều khiển để kiểm tra function trên AbyB(2.0, 3.0) AbyB(3.0, 3.0)
Finally trong Python
Python cung cấp một từ khóa finally, từ khóa này luôn được thực thi sau các khối try và except. Khối cuối cùng luôn thực thi sau khi khối thử kết thúc bình thường hoặc sau khi khối thử kết thúc do một số Exceptions.
Cú pháp:
try: # Some Code except: # Executed if error in the # try block else: # execute if no exception finally: # Some code .....(always executed)
Code:
# Chương trình Python để chứng minh cuối cùng # Không có ngoại lệ Ngoại lệ được đưa ra trong khối thử try: k = 5//0# chia cho ngoại lệ bằng không. print(k) # xử lý zerodivision exception except ZeroDivisionError: print("Can't divide by zero") finally: # khối này luôn được thực thi # bất kể thế hệ ngoại lệ. print('This is always executed')