Lý do phổ biến nhất của một lỗi trong chương trình Python là khi một tuyên bố nhất định không phù hợp với việc sử dụng theo quy định. Một lỗi như vậy được gọi là lỗi cú pháp. Thông dịch viên Python ngay lập tức báo cáo nó, thường là cùng với lý do.
>>> print "hello"
SyntaxError: Missing parentheses in call to 'print'. Did you mean print["hello"]?
Trong Python 3.x, in là một chức năng tích hợp và yêu cầu dấu ngoặc đơn. Câu lệnh trên vi phạm cách sử dụng này và do đó lỗi cú pháp được hiển thị.
Mặc dù vậy, nhiều lần, một chương trình dẫn đến một lỗi sau khi nó được chạy ngay cả khi nó không có bất kỳ lỗi cú pháp nào. Lỗi như vậy là một lỗi thời gian chạy, được gọi là một ngoại lệ. Một số trường hợp ngoại lệ tích hợp được xác định trong thư viện Python. Hãy xem một số loại lỗi phổ biến.
Bảng sau đây liệt kê các trường hợp ngoại lệ tích hợp quan trọng trong Python.
AssitSerror | Lớn lên khi tuyên bố khẳng định thất bại. |
Thuộc tính | Được nâng lên trên gán thuộc tính hoặc tham chiếu thất bại. |
Eoferror | Được nâng lên khi hàm input [] chạm vào điều kiện cuối tập tin. |
FloatingPulumror | Lớn lên khi một hoạt động điểm nổi thất bại. |
Generatorexit | Lớn lên khi phương thức đóng [] của một trình tạo được gọi. |
Nhà nhập khẩu | Lớn lên khi không tìm thấy mô -đun nhập khẩu. |
IndexError | Nêu ra khi chỉ số của một chuỗi nằm ngoài phạm vi. |
KeyError | Lớn lên khi không tìm thấy chìa khóa trong từ điển. |
Bàn phím | Lớn lên khi người dùng nhấn phím ngắt [Ctrl+C hoặc xóa]. |
MemoryError | Lớn lên khi một hoạt động hết bộ nhớ. |
NAMEERROR | Lớn lên khi một biến không được tìm thấy trong phạm vi địa phương hoặc toàn cầu. |
NotmementedError | Được nuôi dưỡng bởi các phương pháp trừu tượng. |
Oserror | Lớn lên khi hoạt động hệ thống gây ra lỗi liên quan đến hệ thống. |
Overflowerror | Lớn lên khi kết quả của một hoạt động số học là quá lớn để được thể hiện. |
Tham chiếu | Lớn lên khi một proxy tham chiếu yếu được sử dụng để truy cập vào một người giới thiệu được thu thập. |
Lỗi runtime | Nêu ra khi một lỗi không thuộc bất kỳ danh mục nào khác. |
Ngăn chặn | Được nâng lên bởi hàm tiếp theo [] để chỉ ra rằng không có mục nào được trả về bởi trình lặp. |
Lỗi cú pháp | Được nâng lên bởi trình phân tích cú pháp khi gặp lỗi cú pháp. |
Mác thụt | Lớn lên khi có một vết lõm không chính xác. |
Taberror | Lớn lên khi vết lõm bao gồm các tab và không gian không nhất quán. |
Lỗi hệ thống | Lớn lên khi thông dịch phát hiện lỗi nội bộ. |
SystemExit | Được nâng lên bởi hàm sys.exit []. |
Kiểu hàng | Lớn lên khi một hàm hoặc hoạt động được áp dụng cho một đối tượng thuộc loại không chính xác. |
Unboundlocalerror | Lớn lên khi một tham chiếu được thực hiện 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 bị ràng buộc với biến đó. |
UnicodeError | Lớn lên khi xảy ra lỗi mã hóa hoặc giải mã liên quan đến Unicode. |
UnicodeEncodeError | Lớn lên khi xảy ra lỗi liên quan đến Unicode trong quá trình mã hóa. |
UnicodedecodeError | Lớn lên khi xảy ra lỗi liên quan đến Unicode trong quá trình giải mã. |
Unicodetranslateerror | Lớn lên khi xảy ra lỗi liên quan đến Unicode trong quá trình dịch. |
ValueError | Lớn lên khi một hàm có một đối số có giá trị chính xác nhưng không đúng giá trị. |
ZerodivisionError | Lớn lên khi hoạt động thứ hai của một bộ phận hoặc hoạt động mô -đun bằng không. |
IndexError
>>> L1=[1,2,3]
>>> L1[3]
Traceback [most recent call last]:
File "", line 1, in
L1[3]
IndexError: list index out of range
1 bị ném khi cố gắng truy cập một mục tại một chỉ mục không hợp lệ.>>> L1=[1,2,3]
>>> L1[3]
Traceback [most recent call last]:
File "", line 1, in
L1[3]
IndexError: list index out of range
Modulenotfounderror
>>> L1=[1,2,3]
>>> L1[3]
Traceback [most recent call last]:
File "", line 1, in
L1[3]
IndexError: list index out of range
2 được ném khi không thể tìm thấy mô -đun.>>> import notamodule
Traceback [most recent call last]:
File "", line 1, in
import notamodule
ModuleNotFoundError: No module named 'notamodule'
KeyError
>>> L1=[1,2,3]
>>> L1[3]
Traceback [most recent call last]:
File "", line 1, in
L1[3]
IndexError: list index out of range
3 được ném khi không tìm thấy chìa khóa.>>> D1={'1':"aa", '2':"bb", '3':"cc"}
>>> D1['4']
Traceback [most recent call last]:
File "", line 1, in
D1['4']
KeyError: '4'
Nhà nhập khẩu
>>> L1=[1,2,3]
>>> L1[3]
Traceback [most recent call last]:
File "", line 1, in
L1[3]
IndexError: list index out of range
4 được ném khi không thể tìm thấy chức năng được chỉ định.>>> from math import cube
Traceback [most recent call last]:
File "", line 1, in
from math import cube
ImportError: cannot import name 'cube'
Ngăn chặn
>>> L1=[1,2,3]
>>> L1[3]
Traceback [most recent call last]:
File "", line 1, in
L1[3]
IndexError: list index out of range
5 được ném khi hàm >>> L1=[1,2,3]
>>> L1[3]
Traceback [most recent call last]:
File "", line 1, in
L1[3]
IndexError: list index out of range
6 vượt ra ngoài các mục lặp.>>> it=iter[[1,2,3]]
>>> next[it]
1
>>> next[it]
2
>>> next[it]
3
>>> next[it]
Traceback [most recent call last]:
File "", line 1, in
next[it]
StopIteration
Kiểu hàng
>>> L1=[1,2,3]
>>> L1[3]
Traceback [most recent call last]:
File "", line 1, in
L1[3]
IndexError: list index out of range
7 được ném khi hoạt động hoặc chức năng được áp dụng cho một đối tượng thuộc loại không phù hợp.>>> '2'+2
Traceback [most recent call last]:
File "", line 1, in
'2'+2
TypeError: must be str, not int
ValueError
>>> L1=[1,2,3]
>>> L1[3]
Traceback [most recent call last]:
File "", line 1, in
L1[3]
IndexError: list index out of range
8 bị ném khi đối số của hàm thuộc loại không phù hợp.>>> int['xyz']
Traceback [most recent call last]:
File "", line 1, in
int['xyz']
ValueError: invalid literal for int[] with base 10: 'xyz'
NAMEERROR
>>> L1=[1,2,3]
>>> L1[3]
Traceback [most recent call last]:
File "", line 1, in
L1[3]
IndexError: list index out of range
9 được ném khi một đối tượng không thể tìm thấy.>>> age
Traceback [most recent call last]:
File "", line 1, in
age
NameError: name 'age' is not defined
ZerodivisionError
>>> import notamodule
Traceback [most recent call last]:
File "", line 1, in
import notamodule
ModuleNotFoundError: No module named 'notamodule'
0 được ném khi nhà điều hành thứ hai trong bộ phận bằng không.>>> x=100/0
Traceback [most recent call last]:
File "", line 1, in
x=100/0
ZeroDivisionError: division by zero
Bàn phím
>>> import notamodule
Traceback [most recent call last]:
File "", line 1, in
import notamodule
ModuleNotFoundError: No module named 'notamodule'
1 được ném khi người dùng nhấn phím ngắt [thường là điều khiển-C] trong quá trình thực hiện chương trình.>>> L1=[1,2,3]
>>> L1[3]
Traceback [most recent call last]:
File "", line 1, in
L1[3]
IndexError: list index out of range
0Tìm hiểu cách xử lý các ngoại lệ trong Python trong chương tiếp theo.