Để sử dụng xử lý ngoại lệ trong python, trước tiên chúng ta cần nắm bắt tất cả các mệnh đề ngoại trừ.
Python cung cấp các từ khóa “thử” và “ngoại trừ” để bắt các trường hợp ngoại lệ. Mã khối “try” sẽ được thực thi từng câu lệnh. Tuy nhiên, nếu một ngoại lệ xảy ra, mã "try" còn lại sẽ không được thực thi và mệnh đề ngoại trừ sẽ được thực thi.
try: some_statements_here except: exception_handling
Hãy xem cú pháp ở trên với một ví dụ rất đơn giản -
try: print("Hello, World!") except: print("This is an error message!")
Đầu ra
Hello, World!
Trên đây là một ví dụ rất đơn giản, hãy hiểu khái niệm trên bằng một ví dụ khác -
import sys List = ['abc', 0, 2, 4] for item in List: try: print("The List Item is", item) r = 1/int(item) break except: print("Oops!",sys.exc_info()[0],"occured.") print('\n') print("Next Item from the List is: ") print() print("The reciprocal of",item,"is",r)
Đầu ra
The List Item is abc Oops! <class 'ValueError'> occured. Next Item from the List is: The List Item is 0 Oops! <class 'ZeroDivisionError'> occured. Next Item from the List is: The List Item is 2 The reciprocal of 2 is 0.5
Trong chương trình trên, các vòng lặp chạy cho đến khi chúng ta nhận được (với tư cách là đầu vào của người dùng) một số nguyên có đối ứng hợp lệ. Mã gây ra một ngoại lệ để nâng cao được đặt trong khối thử.
Trong trường hợp một số ngoại lệ xảy ra, nó sẽ bị chặn bởi khối ngoại trừ. Chúng ta có thể kiểm tra chương trình trên với các lỗi ngoại lệ khác nhau. Dưới đây là một số lỗi ngoại lệ phổ biến -
-
IOError
Nâng cao trong trường hợp chúng tôi không thể mở tệp.
-
ImportError
Nâng cao trong trường hợp mô-đun bị thiếu.
-
ValueError
Điều này xảy ra bất cứ khi nào chúng ta truyền đối số có đúng loại nhưng một giá trị không phù hợp của toán tử hoặc hàm tích hợp sẵn.
-
Bàn phím ngắt
Bất cứ khi nào người dùng nhấn phím ngắt (thường là control-c)
-
EOFError
Ngoại lệ được đặt ra khi các hàm tích hợp đạt điều kiện cuối tệp (EOF) mà không đọc bất kỳ dữ liệu nào.