Chuyển đổi (convert) dữ liệu XML sang dữ liệu JSON trong Python
XML và JSON là 2 định dạng (format) dữ liệu được sử dụng phổ biến nhất...
Kết quả sẽ mở trong tab mới, giới hạn trong website này.
Truy cập nhanh
Tìm kiếm gần đây
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 […]
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.
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.
# 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.
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")
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.
| Exception | Nguyên nhân gây ra exception |
| AssertionError | Câu lệnh assert có điều kiện là False |
| FloatingPointError | Phép tính số thực bị lỗi |
| ImportError | Import module mà Python không tìm thấy |
| IndexError | Truy xuất index nằm ngoài phạm vi |
| KeyError | Key không có trong Dictionary |
| KeyboardInterrupt | Người dùng bấm phím ngắt (Ctrl+C hoặc Delete) |
| MemoryError | Hết bộ nhớ |
| NameError | Biến không tồn tại trong scope cục bộ (local) hoặc toàn cục (global) |
| NotImplementedError | Phương thức trừu tượng (abstract method) chưa được lớp con định nghĩa lại |
| OSError | Lỗi hệ thống từ hệ điều hành |
| OverflowError | Kết quả phép tính quá lớn, không biểu diễn được |
| RuntimeError | Lỗi không thuộc loại exception có sẵn nào khác |
| SyntaxError | Sai cú pháp Python |
| IndentationError | Dùng indentation sai quy định |
| TabError | indentation trộn lẫn tab và khoảng trắng |
| SystemError | Trình thông dịch gặp lỗi nội bộ (internal error) |
| TypeError | Phương thức hoặc toán tử dùng cho object sai kiểu dữ liệu |
| UnboundLocalError | Dùng biến cục bộ khi biến chưa được gán giá trị |
| UnicodeError | Mã 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ệ |
| ZeroDivisionError | Chia 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.