Lỗi xảy ra trong thời gian chạy [sau khi vượt qua kiểm tra cú pháp] được gọi là ngoại lệ hoặc lỗi logic
Ví dụ, chúng xảy ra khi chúng ta
- cố gắng mở một tệp [để đọc] không tồn tại [
FileNotFoundError
] - cố gắng chia một số cho 0 [
ZeroDivisionError
] - cố gắng nhập một mô-đun không tồn tại [
ImportError
], v.v.
Bất cứ khi nào các loại lỗi thời gian chạy này xảy ra, Python sẽ tạo một đối tượng ngoại lệ
Nếu không được xử lý đúng cách, nó sẽ in một dấu vết về lỗi đó cùng với một số chi tiết về lý do xảy ra lỗi đó
Hãy xem cách Python xử lý các lỗi này
divide_numbers = 7 / 0
prit[divide_numbers]
đầu ra
Traceback [most recent call last]: File "", line 1, in ZeroDivisionError: division by zero
Ở đây, trong khi cố gắng chia 7 / 0
, chương trình đưa ra một ngoại lệ hệ thống ZeroDivisionError
Ngoại lệ tích hợp Python
Hoạt động bất hợp pháp có thể tăng ngoại lệ. Có rất nhiều ngoại lệ tích hợp trong Python được nêu ra khi xảy ra lỗi tương ứng
Chúng ta có thể xem tất cả các ngoại lệ tích hợp bằng hàm local[]
tích hợp như sau
print[dir[locals[]['__builtins__']]]
Ở đây,
divide_numbers = 7 / 0
prit[divide_numbers]
0 sẽ trả về một mô-đun gồm các ngoại lệ, hàm và thuộc tính tích hợp sẵn và divide_numbers = 7 / 0
prit[divide_numbers]
1 cho phép chúng tôi liệt kê các thuộc tính này dưới dạng chuỗiMột số ngoại lệ tích hợp phổ biến trong lập trình Python cùng với lỗi gây ra chúng được liệt kê bên dưới
Ngoại lệNguyên nhân gây ra lỗi
divide_numbers = 7 / 0
prit[divide_numbers]
2Tăng lên khi câu lệnh divide_numbers = 7 / 0
prit[divide_numbers]
3 không thành công. divide_numbers = 7 / 0
prit[divide_numbers]
4Tăng lên khi gán thuộc tính hoặc tham chiếu không thành công. divide_numbers = 7 / 0
prit[divide_numbers]
5Tăng lên khi hàm divide_numbers = 7 / 0
prit[divide_numbers]
6 chạm vào điều kiện cuối tệp. divide_numbers = 7 / 0
prit[divide_numbers]
7Tăng lên khi thao tác dấu phẩy động không thành công. divide_numbers = 7 / 0
prit[divide_numbers]
8Raise khi phương thức divide_numbers = 7 / 0
prit[divide_numbers]
9 của bộ tạo được gọi. ImportError
Tăng lên khi không tìm thấy mô-đun đã nhập. Traceback [most recent call last]: File "", line 1, in ZeroDivisionError: division by zero1Tăng lên khi chỉ mục của chuỗi nằm ngoài phạm vi.
Traceback [most recent call last]: File "", line 1, in ZeroDivisionError: division by zero2Tăng lên khi không tìm thấy khóa trong từ điển.
Traceback [most recent call last]: File "", line 1, in ZeroDivisionError: division by zero3Tăng lên khi người dùng nhấn phím ngắt [
Traceback [most recent call last]: File "", line 1, in ZeroDivisionError: division by zero4 hoặc
Traceback [most recent call last]: File "", line 1, in ZeroDivisionError: division by zero5].
Traceback [most recent call last]: File "", line 1, in ZeroDivisionError: division by zero6Tăng lên khi một thao tác hết bộ nhớ.
Traceback [most recent call last]: File "", line 1, in ZeroDivisionError: division by zero7Tăng lên khi không tìm thấy biến trong phạm vi cục bộ hoặc toàn cục.
Traceback [most recent call last]: File "", line 1, in ZeroDivisionError: division by zero8Được nâng cao bằng các phương pháp trừu tượng.
Traceback [most recent call last]: File "", line 1, in ZeroDivisionError: division by zero9Tăng lên khi hoạt động của hệ thống gây ra lỗi liên quan đến hệ thống.
print[dir[locals[]['__builtins__']]]
0Tăng lên khi kết quả của một phép toán số học quá lớn để được biểu diễn. print[dir[locals[]['__builtins__']]]
1Tăng lên khi một proxy tham chiếu yếu được sử dụng để truy cập một tham chiếu được thu gom rác. print[dir[locals[]['__builtins__']]]
2Tăng lên khi lỗi không thuộc bất kỳ danh mục nào khác. Hàm print[dir[locals[]['__builtins__']]]
3Được nâng lên bởi hàm print[dir[locals[]['__builtins__']]]
4 để chỉ ra rằng không có mục nào khác được trả về bởi bộ vòng lặp. print[dir[locals[]['__builtins__']]]
5Được trình phân tích cú pháp nâng lên khi gặp lỗi cú pháp. print[dir[locals[]['__builtins__']]]
6Tăng lên khi có vết lõm không chính xác. print[dir[locals[]['__builtins__']]]
7Tăng lên khi thụt lề bao gồm các tab và khoảng trắng không nhất quán. print[dir[locals[]['__builtins__']]]
8Tăng lên khi thông dịch viên phát hiện lỗi nội bộ. print[dir[locals[]['__builtins__']]]
9Được nâng lên bởi chức năng FileNotFoundError
0. FileNotFoundError
1Tăng lên khi một chức năng hoặc hoạt động được áp dụng cho một đối tượng không đúng loại. FileNotFoundError
2Tăng lên khi một tham chiếu được tạo cho một biến cục bộ trong một hàm hoặc phương thức, nhưng không có giá trị nào được liên kết với biến đó. FileNotFoundError
3Tăng lên khi xảy ra lỗi mã hóa hoặc giải mã liên quan đến Unicode. FileNotFoundError
4Tăng lên khi xảy ra lỗi liên quan đến Unicode trong quá trình mã hóa. FileNotFoundError
5Tăng lên khi xảy ra lỗi liên quan đến Unicode trong quá trình giải mã. FileNotFoundError
6 Xảy ra khi xảy ra lỗi liên quan đến Unicode trong quá trình dịch. FileNotFoundError
7Xảy ra khi một hàm nhận được đối số thuộc loại đúng nhưng giá trị không đúng. ZeroDivisionError
Tăng lên khi toán hạng thứ hai của phép chia hoặc phép toán modulo bằng 0Nếu được yêu cầu, chúng tôi cũng có thể xác định các ngoại lệ của riêng mình trong Python. Để tìm hiểu thêm về chúng, hãy truy cập Ngoại lệ do người dùng xác định Python
Chúng ta có thể xử lý các ngoại lệ có sẵn và do người dùng định nghĩa này trong Python bằng cách sử dụng các câu lệnh FileNotFoundError
9, ZeroDivisionError
0 và ZeroDivisionError
1. Để tìm hiểu thêm về chúng, hãy truy cập các câu lệnh try, except và finally của Python
Lỗi Python và ngoại lệ
Lỗi đại diện cho các điều kiện như lỗi biên dịch, lỗi cú pháp, lỗi trong phần logic của mã, không tương thích thư viện, đệ quy vô hạn, v.v.