Mục lục bài viết

Chúng ta chắc chắn sẽ gặp những lỗi khi lập trình cũng như lúc chạy chương trình. Trong Python, chúng ta có thể chia các lỗi (error) thành 2 loại: syntax error và exception.

1. Lỗi cú pháp (Syntax Error) trong Python

Lỗi cú pháp (syntax error) còn gọi là parsing error. Lỗi này xảy ra khi code viết sai cú pháp Python. Syntax error hay gặp nhất khi mới học Python.

Ví dụ lỗi cú pháp trong Python

# SyntaxError: expected ':'
if a < 3
  print("a is smaller than 3")

Trong ví dụ trên, câu lệnh if thiếu dấu : nên gây ra lỗi cú pháp.

# SyntaxError: invalid syntax
while True:
  print(Hello world)

Ở ví dụ trên, đối số của print thiếu dấu nháy nên gây lỗi cú pháp.

2. Lỗi ngoại lệ (Exception) trong Python

Những lỗi xảy ra lúc chạy chương trình (runtime) được gọi là exception hay logical error. Có nhiều trường hợp có thể gây ra exception. Ví dụ, khi chúng ta mở một file không tồn tại sẽ gặp exception là FileNotFoundError. Hay chia một số cho 0 thì sẽ gặp exception là ZeroDivisionError. Hoặc nếu import một module không tồn tại thì sẽ gặp exception là ImportError.

Khi một exception xảy ra, Python sẽ tạo ra một đối tượng exception. Nếu không xử lý, Python sẽ dừng chương trình và in thông báo lỗi.

# ZeroDivisionError: division by zero
x = 1/0
# NameError: name 'spam' is not defined
y = 4 + spam*3
# TypeError: can only concatenate str (not "int") to str
z = '2' + 2
# FileNotFoundError: [Errno 2] No such file or directory: 'imaginary.txt'
open("imaginary.txt")

3. Những exception được xây dựng sẵn trong Python

Python có sẵn nhiều exception. Xem danh sách đầy đủ bằng lệnh print(dir(locals()['__builtins__'])).

Bảng dưới liệt kê các exception thông dụng.

ExceptionNguyên nhân gây ra exception
AssertionErrorCâu lệnh assert có điều kiện là False
FloatingPointErrorPhép tính số thực bị lỗi
ImportErrorImport module mà Python không tìm thấy
IndexErrorTruy xuất index nằm ngoài phạm vi
KeyErrorKey không có trong Dictionary
KeyboardInterruptNgười dùng bấm phím ngắt (Ctrl+C hoặc Delete)
MemoryErrorHết bộ nhớ
NameErrorBiến không tồn tại trong scope cục bộ (local) hoặc toàn cục (global)
NotImplementedErrorPhương thức trừu tượng (abstract method) chưa được lớp con định nghĩa lại
OSErrorLỗi hệ thống từ hệ điều hành
OverflowErrorKết quả phép tính quá lớn, không biểu diễn được
RuntimeErrorLỗi không thuộc loại exception có sẵn nào khác
SyntaxErrorSai cú pháp Python
IndentationErrorDùng indentation sai quy định
TabErrorindentation trộn lẫn tab và khoảng trắng
SystemErrorTrình thông dịch gặp lỗi nội bộ (internal error)
TypeErrorPhương thức hoặc toán tử dùng cho object sai kiểu dữ liệu
UnboundLocalErrorDùng biến cục bộ khi biến chưa được gán giá trị
UnicodeErrorMã hóa (encoding) hoặc giải mã (decoding) Unicode bị lỗi
ValueErrorĐối số đúng kiểu nhưng giá trị không hợp lệ
ZeroDivisionErrorChia một số cho 0

Trong bài Cách xử lý ngoại lệ (exception) trong Python, chúng ta sẽ học cách xử lý chúng.

Tác giả

HV Lee

500+ bài viết về lập trình, phần cứng, mạng máy tính và công nghệ. Chia sẻ kiến thức từ những gì đã học, đã dạy và đã trải nghiệm — để người học CNTT hiểu sâu hơn và làm được nhiều hơn.

Gợi ý tiếp theo

Cách xử lý ngoại lệ (exception) trong Python

Học tiếp