Explore all courses in this category.
Explore all courses in this category.
Nguyễn Đình Cường
0 comment
09 Nov, 2026
Màn hình đỏ rực với hàng chục dòng chữ khiến nhiều người mới hoảng sợ và đóng lại ngay. Thực ra thông báo lỗi là người bạn hữu ích nhất của lập trình viên, vì nó cho bạn biết gần như chính xác chuyện gì xảy ra và ở đâu. Bài này hướng dẫn cách đọc stack trace một cách bình tĩnh.
Hầu hết ngôn ngữ đều hiển thị ba thông tin chính: loại lỗi, thông điệp và vị trí (file, dòng). Ví dụ trong Python:
Traceback (most recent call last):File "app.py", line 12, in <module>result = calculate_average(scores)File "app.py", line 5, in calculate_averagereturn sum(numbers) / len(numbers)ZeroDivisionError: division by zeroCách đọc:
ZeroDivisionError: division by zero, tức là chia cho 0.app.py, dòng 5, trong hàm calculate_average.Nguyên nhân: danh sách scores rỗng nên len(numbers) bằng 0. Giờ bạn chỉ cần xử lý trường hợp rỗng.
Đừng quên kiểm tra ngôn ngữ của bạn xếp stack trace theo thứ tự nào:
at ... bên dưới là call stack từ trong ra ngoài.Ví dụ JavaScript:
TypeError: Cannot read properties of undefined (reading 'name')at printUser (/project/src/user.js:8:25)at main (/project/src/index.js:20:3)Thông điệp nói rằng bạn đang đọc thuộc tính name của một giá trị undefined. Dòng đầu tiên trong stack cho biết vị trí là user.js dòng 8. Hãy mở dòng đó và xem biến nào đang là undefined.
| Loại lỗi | Thường có nghĩa là |
|---|---|
| SyntaxError | Sai cú pháp: thiếu ngoặc, dấu phẩy, dấu nháy |
| TypeError | Dùng giá trị sai kiểu, hoặc gọi thứ không phải hàm |
| ReferenceError / NameError | Dùng biến chưa khai báo hoặc gõ sai tên |
| IndexError / RangeError | Truy cập vị trí ngoài phạm vi mảng |
| NullPointerException | Dùng đối tượng đang là null |
| ImportError / ModuleNotFound | Thiếu thư viện hoặc sai đường dẫn import |
Khi có nhiều lỗi xuất hiện cùng lúc, hãy sửa lỗi đầu tiên trước và chạy lại. Rất nhiều lỗi phía sau chỉ là hệ quả, ví dụ một import lỗi khiến hàng loạt tên không tồn tại. Trình biên dịch như Java, TypeScript hay C++ nổi tiếng với việc đưa ra rất nhiều lỗi sau một lỗi cú pháp duy nhất.
Nếu cần nhờ giúp, hãy dán nguyên văn thông báo lỗi (dạng text, không chụp ảnh nếu có thể), đoạn code liên quan và những gì bạn đã thử. Một câu hỏi như "code bị lỗi, giúp mình" gần như không ai trả lời được, còn thông điệp lỗi đầy đủ giúp người khác xác định vấn đề chỉ trong vài phút.
Thông báo lỗi không phải kẻ thù mà là tấm bản đồ chỉ đường. Khi đã quen đọc loại lỗi, thông điệp và vị trí, bạn sẽ thấy phần lớn lỗi có thể giải quyết trong vài phút mà không cần hỏi ai. Hãy thử cố ý tạo vài lỗi nhỏ để làm quen với mặt chữ của chúng.
Nếu bạn đang học lập trình từ đầu và muốn có người hướng dẫn từng bước, bạn có thể xem danh sách khóa học tại codebem.com.
Nguyễn Đình Cường
0 comment