AI Engineering Tools

Lập trình

Hướng dẫn đọc lỗi

Hướng dẫn thực tế để tìm dòng nguyên nhân, đường dẫn tệp, cảnh báo và lỗi thật trong nhật ký.

31 mục

Cấu trúc thông báo

Dòng lỗi đầu tiên.

First error line

TypeError: Cannot read properties of undefined

Ý nghĩa

Dòng lỗi rõ ràng đầu tiên thường là điểm khởi đầu tốt nhất.

Cách đọc

Bỏ qua các bản ghi theo dõi lặp đi lặp lại ban đầu và xác định dòng đầu tiên đặt tên cho sự cố.

Ví dụ

TypeError: Cannot read properties of undefined

Ví dụ yêu cầu

Tìm dòng lỗi thực tế đầu tiên trong nhật ký này.

Cấu trúc thông báo

Tên lỗi

Error name

SyntaxError, TypeError, ReferenceError

Ý nghĩa

Tên lỗi cho biết loại vấn đề chung.

Cách đọc

Sử dụng nó để phân tách các vấn đề về cú pháp, thời gian chạy, kiểu dữ liệu, mạng và môi trường.

Ví dụ

SyntaxError, TypeError, ReferenceError

Ví dụ yêu cầu

Phân loại lỗi này theo tên lỗi trước khi đề xuất giải pháp.

Cấu trúc thông báo

Thông báo lỗi

Error message

Module not found: Can't resolve '@/lib/error-message-guide'

Ý nghĩa

Thông báo giải thích những gì công cụ không thể thực hiện.

Cách đọc

Đọc động từ và đối tượng: không thể giải quyết mô-đun, không thể đọc thuộc tính hoặc không thể gắn cổng.

Ví dụ

Module not found: Can't resolve '@/lib/error-message-guide'

Ví dụ yêu cầu

Viết lại thông báo lỗi này bằng tiếng Hàn đơn giản và chỉ ra nguyên nhân có khả năng.

Cấu trúc thông báo

Dòng lệnh gọi hàm (stack trace)

Stack trace

tại SiteHeader (src/components/SiteHeader.tsx:42:15)

Ý nghĩa

Một danh sách các lệnh gọi hàm đã dẫn đến lỗi.

Cách đọc

Tìm dòng đầu tiên trỏ đến tệp dự án của bạn, sau đó kiểm tra khu vực đó.

Lưu ý

Dòng trên cùng của ngăn xếp không phải lúc nào cũng là mã của bạn. Một số dòng là các thành phần nội bộ của framework.

Ví dụ

tại SiteHeader (src/components/SiteHeader.tsx:42:15)

Ví dụ yêu cầu

Trong dấu vết ngăn xếp này, hãy xác định dòng đầu tiên từ dự án của tôi.

Gợi ý vị trí

Đường dẫn đến tệp.

File path

src/components/LanguageSwitcher.tsx

Ý nghĩa

Đường dẫn cho biết công cụ nghĩ rằng tệp nào liên quan.

Cách đọc

Ưu tiên các đường dẫn nằm trong thư mục src, app, components hoặc lib trước khi kiểm tra các thư mục phụ thuộc.

Ví dụ

src/components/LanguageSwitcher.tsx

Ví dụ yêu cầu

Liệt kê các tệp dự án được đề cập bởi lỗi này.

Gợi ý vị trí

Dòng và cột

Line and column

src/app/page.tsx:27:12

Ý nghĩa

Dòng và cột thu hẹp vị trí đến một khu vực ký tự cụ thể.

Cách đọc

Kiểm tra dòng được chỉ định cùng với một vài dòng phía trên nó, vì nguyên nhân thực sự có thể bắt đầu sớm hơn.

Ví dụ

src/app/page.tsx:27:12

Ví dụ yêu cầu

Mở tệp xung quanh dòng được báo cáo và giải thích những gì có vẻ không đúng.

Gợi ý vị trí

Dòng trong tệp dự án

Project file line

src/lib/git-github.ts:143:7

Ý nghĩa

Một ngăn xếp hoặc dòng xây dựng trỏ đến mã nguồn của bạn thay vì một phụ thuộc.

Cách đọc

Đây thường là dòng cần kiểm tra trước khi đọc các thông báo lỗi chi tiết của framework.

Ví dụ

src/lib/git-github.ts:143:7

Ví dụ yêu cầu

Tách biệt các dòng mã của dự án của tôi khỏi các dòng của framework.

Gợi ý vị trí

node_modules line

node_modules line

node_modules/next/dist/server/app-render.js

Ý nghĩa

Một dòng bên trong một gói phụ thuộc hoặc khung được cài đặt.

Cách đọc

Xem xét nó như một ngữ cảnh trừ khi nhật ký cũng chỉ ra vấn đề về phiên bản gói hoặc cấu hình.

Lưu ý

Không chỉnh sửa thư mục node_modules như một bản sửa lỗi thông thường.

Ví dụ

node_modules/next/dist/server/app-render.js

Ví dụ yêu cầu

Hãy cho tôi biết dòng `node_modules` này có phải là nguyên nhân hay chỉ là thông tin tham khảo.

Lỗi runtime JavaScript

SyntaxError

SyntaxError

SyntaxError: Unexpected token '}'

Ý nghĩa

JavaScript hoặc TypeScript không thể phân tích cú pháp mã.

Cách đọc

Kiểm tra dấu ngoặc, dấu nháy, dấu phẩy, thẻ JSX và các biểu thức không đầy đủ gần dòng được báo cáo.

Ví dụ

SyntaxError: Unexpected token '}'

Ví dụ yêu cầu

Tìm vấn đề về cú pháp xung quanh dòng này.

Lỗi runtime JavaScript

TypeError

TypeError

TypeError: Cannot read properties of undefined

Ý nghĩa

Một giá trị không có hình dạng hoặc hành vi mà mã mong đợi tại thời điểm chạy.

Cách đọc

Kiểm tra xem giá trị có thể là undefined, null, một chuỗi thay vì một đối tượng hoặc một hàm bị thiếu hay không.

Ví dụ

TypeError: Cannot read properties of undefined

Ví dụ yêu cầu

Theo dõi nguồn gốc của giá trị không xác định này.

Lỗi runtime JavaScript

ReferenceError

ReferenceError

ReferenceError: copy is not defined

Ý nghĩa

Mã đã cố gắng sử dụng một tên biến hoặc hàm không có trong phạm vi đó.

Cách đọc

Kiểm tra các lệnh nhập, chính tả, phạm vi và xem biến có được khai báo trước khi sử dụng hay không.

Ví dụ

ReferenceError: copy is not defined

Ví dụ yêu cầu

Tìm lý do tại sao tên này không được định nghĩa.

Lỗi runtime JavaScript

Không thể đọc các thuộc tính của undefined

Cannot read properties of undefined

Không thể đọc các thuộc tính của undefined (đọc 'navLabel')

Ý nghĩa

Mã đã cố gắng truy cập một thuộc tính trên một giá trị không xác định.

Cách đọc

Kiểm tra đối tượng trước dấu chấm, chẳng hạn như copy, locale, params hoặc kết quả tra cứu bản đồ.

Ví dụ

Không thể đọc các thuộc tính của undefined (đọc 'navLabel')

Ví dụ yêu cầu

Xác định giá trị nào không xác định trong lỗi này.

Lỗi runtime JavaScript

không phải là một hàm

is not a function

setOpenMenu không phải là một hàm.

Ý nghĩa

Mã đã cố gắng gọi một thứ gì đó với dấu ngoặc đơn, nhưng giá trị không phải là một hàm.

Cách đọc

Kiểm tra xem tên của một thuộc tính (prop), lệnh nhập (import), kết quả hook hoặc phương thức đối tượng có phải là tên mong muốn hay không.

Ví dụ

setOpenMenu không phải là một hàm.

Ví dụ yêu cầu

Tìm lý do tại sao giá trị này đang được gọi như một hàm.

Next.js và web

Module not found

Module not found

Module not found: Can't resolve '@/lib/error-message-guide'

Ý nghĩa

Trình đóng gói không thể tìm thấy tệp hoặc gói được chỉ định trong một lệnh nhập.

Cách đọc

Kiểm tra xem tệp có tồn tại hay không, chính tả đường dẫn là chính xác và bí danh trỏ đến thư mục dự kiến.

Ví dụ

Module not found: Can't resolve '@/lib/error-message-guide'

Ví dụ yêu cầu

Kiểm tra đường dẫn nhập và đường dẫn tệp thực tế.

Next.js và web

Không tìm thấy đối tượng được xuất.

Export not found

Export errorMessageGuideCopy doesn't exist in target module

Ý nghĩa

Tên import không khớp với bất kỳ export nào từ tệp đích.

Cách đọc

So sánh tên đã nhập với tên const, hàm hoặc kiểu xuất chính xác.

Ví dụ

Export errorMessageGuideCopy doesn't exist in target module

Ví dụ yêu cầu

Tìm tên import hoặc export bị không khớp.

Next.js và web

Hydration failed

Hydration failed

Hydration failed because the server rendered HTML didn't match the client

Ý nghĩa

HTML được tạo trên máy chủ không khớp với những gì React hiển thị trong trình duyệt.

Cách đọc

Kiểm tra các giá trị chỉ dành cho trình duyệt, ngày, giá trị ngẫu nhiên, localStorage và trạng thái chủ đề được sử dụng trong quá trình hiển thị ban đầu.

Ví dụ

Hydration failed because the server rendered HTML didn't match the client

Ví dụ yêu cầu

Tìm sự không nhất quán giữa việc render trên máy chủ và máy khách.

Next.js và web

404 Not Found

404 Not Found

GET /ko/reference/error-message-guide 404

Ý nghĩa

Đường dẫn hoặc tệp được yêu cầu không thể tìm thấy.

Cách đọc

Kiểm tra thư mục tuyến đường, generateStaticParams, liên kết href và đường dẫn đầu ra tĩnh đã xuất.

Ví dụ

GET /ko/reference/error-message-guide 404

Ví dụ yêu cầu

Kiểm tra lý do tại sao route này trả về mã lỗi 404.

Next.js và web

500 Internal Server Error

500 Internal Server Error

GET /ko 500

Ý nghĩa

Máy chủ đã nhận yêu cầu nhưng gặp lỗi trong quá trình xử lý.

Cách đọc

Xem nhật ký đầu ra từ cùng một yêu cầu, không chỉ mã trạng thái của trình duyệt.

Ví dụ

GET /ko 500

Ví dụ yêu cầu

Khớp mã lỗi HTTP 500 này với lỗi đầu ra của terminal đã gây ra nó.

TypeScript và lint

Thuộc tính không tồn tại trong kiểu.

Property does not exist on type

Thuộc tính 'navLabel' không tồn tại trong kiểu 'string'.

Ý nghĩa

TypeScript cho biết rằng kiểu được khai báo của giá trị không bao gồm thuộc tính đó.

Cách đọc

Kiểm tra xem giá trị có kiểu đúng hay không, xem nó có được lập chỉ mục đúng cách hay không và xem hình dạng dữ liệu có thay đổi hay không.

Ví dụ

Thuộc tính 'navLabel' không tồn tại trong kiểu 'string'.

Ví dụ yêu cầu

Giải thích tại sao TypeScript nghĩ rằng thuộc tính này không tồn tại.

TypeScript và lint

Loại không thể được gán

Type is not assignable

Loại 'string' không thể được gán cho loại 'Locale'

Ý nghĩa

Một giá trị đang được truyền đến một nơi mà nơi đó mong đợi một kiểu dữ liệu khác.

Cách đọc

So sánh kiểu giá trị thực tế với kiểu dự kiến được đặt tên sau 'to type'.

Ví dụ

Loại 'string' không thể được gán cho loại 'Locale'

Ví dụ yêu cầu

Hiển thị kiểu dữ liệu thực tế và kiểu dữ liệu mong đợi trong lỗi này.

TypeScript và lint

Lỗi ESLint

ESLint error

Hàm useEffect của React thiếu một đối tượng phụ thuộc.

Ý nghĩa

Một quy tắc phân tích tĩnh đã tìm thấy mã có thể không an toàn, không nhất quán hoặc vi phạm phong cách dự án.

Cách đọc

Đọc tên quy tắc và dòng của tệp, sau đó quyết định xem danh sách mã hoặc danh sách phụ thuộc có nên thay đổi hay không.

Ví dụ

Hàm useEffect của React thiếu một đối tượng phụ thuộc.

Ví dụ yêu cầu

Giải thích lỗi lint này và sửa nó mà không thay đổi hành vi.

Next.js và web

Xây dựng thất bại

Build failed

Quá trình biên dịch không thành công.

Ý nghĩa

Quá trình xây dựng phiên bản sản phẩm không thể hoàn thành.

Cách đọc

Cuộn lên trên phần tóm tắt và tìm lỗi biên dịch, kiểu, kiểm tra kiểu hoặc tuyến đường đầu tiên.

Ví dụ

Quá trình biên dịch không thành công.

Ví dụ yêu cầu

Từ nhật ký xây dựng này, hãy xác định lần lỗi nghiêm trọng đầu tiên.

Terminal và hệ thống

EADDRINUSE

EADDRINUSE

Error: listen EADDRINUSE: address already in use :::3001

Ý nghĩa

Máy chủ đã cố gắng sử dụng một cổng mà một quy trình khác đang sử dụng.

Cách đọc

Dừng máy chủ cũ hoặc chạy máy chủ mới trên một cổng khác.

Ví dụ

Error: listen EADDRINUSE: address already in use :::3001

Ví dụ yêu cầu

Tìm ứng dụng nào đang sử dụng cổng này và đề xuất bước tiếp theo an toàn nhất.

Terminal và hệ thống

ENOENT

ENOENT

ENOENT: Không tìm thấy tệp hoặc thư mục, mở 'next.config.js'.

Ý nghĩa

Quá trình đã cố gắng mở một tệp hoặc thư mục không tồn tại tại đường dẫn đó.

Cách đọc

Kiểm tra thư mục làm việc hiện tại, chính tả tên tệp, phần mở rộng và các tệp được tạo.

Ví dụ

ENOENT: Không tìm thấy tệp hoặc thư mục, mở 'next.config.js'.

Ví dụ yêu cầu

Kiểm tra xem tệp này có bị thiếu hay lệnh đang được chạy từ thư mục không đúng hay không.

Terminal và hệ thống

Quyền bị từ chối

Permission denied

Không được phép thực hiện.

Ý nghĩa

Quá trình không có quyền đọc, ghi hoặc thực thi đối tượng mục tiêu.

Cách đọc

Kiểm tra các quy tắc sandbox, quyền truy cập tệp, thư mục được bảo vệ và xem có cần phê duyệt hay không.

Lưu ý

Không sửa lỗi quyền bằng cách thay đổi quyền một cách rộng rãi trừ khi bạn hiểu mục tiêu.

Ví dụ

Không được phép thực hiện.

Ví dụ yêu cầu

Giải thích tại sao lỗi quyền này xảy ra và cần phê duyệt gì.

Terminal và hệ thống

Lệnh không tìm thấy

Command not found

zsh: command not found: next

Ý nghĩa

Shell không thể tìm thấy lệnh thực thi có tên đó.

Cách đọc

Kiểm tra xem các phụ thuộc có được cài đặt hay không, xem có nên sử dụng các lệnh npm hay không và xem biến PATH có được đặt hay không.

Ví dụ

zsh: command not found: next

Ví dụ yêu cầu

Cho tôi biết tôi có nên chạy một script npm thay vì lệnh này hay không.

Thứ tự gỡ lỗi

Cảnh báo

Warning

DeprecationWarning: module.register() is deprecated

Ý nghĩa

Một cảnh báo cho biết điều gì đó có thể cần được chú ý, nhưng có thể không ngăn chặn lệnh hiện tại.

Cách đọc

Kiểm tra xem lệnh có hoàn thành thành công hay không trước khi coi cảnh báo là lỗi.

Ví dụ

DeprecationWarning: module.register() is deprecated

Ví dụ yêu cầu

Tách biệt các lỗi chặn khỏi các cảnh báo không chặn trong đầu ra này.

Thứ tự gỡ lỗi

DeprecationWarning

DeprecationWarning

DeprecationWarning: module.register() is deprecated

Ý nghĩa

Một tính năng vẫn hoạt động hiện tại nhưng dự kiến sẽ được thay thế hoặc loại bỏ sau này.

Cách đọc

Nếu quá trình xây dựng thành công, hãy ghi lại nó như một bước tiếp theo trừ khi nó chỉ ra mã của bạn hoặc một bản nâng cấp bắt buộc.

Ví dụ

DeprecationWarning: module.register() is deprecated

Ví dụ yêu cầu

Hãy cho tôi biết cảnh báo "DeprecationWarning" này có gây ảnh hưởng đến quá trình triển khai hay không.

Thứ tự gỡ lỗi

Thay đổi gần đây.

Recent change

Lỗi bắt đầu sau khi chỉnh sửa SiteHeader.tsx.

Ý nghĩa

Bản sửa đổi liên quan gần đây nhất thường là manh mối có giá trị nhất.

Cách đọc

So sánh vị trí lỗi với các tệp đã được sửa đổi trong tác vụ hiện tại.

Ví dụ

Lỗi bắt đầu sau khi chỉnh sửa SiteHeader.tsx.

Ví dụ yêu cầu

So sánh lỗi này với các tệp đã được thay đổi gần đây nhất.

Thứ tự gỡ lỗi

Lặp lại bước

Reproduce step

Mở /ko, nhấp vào menu ngôn ngữ, sau đó nhấp vào menu trang web.

Ý nghĩa

Chuỗi hành động nhỏ nhất khiến lỗi xuất hiện lại.

Cách đọc

Các bước tái tạo rõ ràng giúp xác minh rằng bản sửa lỗi thực sự hoạt động.

Ví dụ

Mở /ko, nhấp vào menu ngôn ngữ, sau đó nhấp vào menu trang web.

Ví dụ yêu cầu

Chuyển đổi mô tả này thành các bước tái tạo chính xác.

Thứ tự gỡ lỗi

Nhật ký tối thiểu

Minimal log

Dòng lỗi + đường dẫn tệp + dòng ngăn xếp từ mã nguồn

Ý nghĩa

Một tập hợp ngắn các dòng nhật ký bảo toàn lỗi thực tế và vị trí.

Cách đọc

Giữ lỗi đầu tiên, đường dẫn tệp dự án, lệnh và bản tóm tắt thành công hoặc thất bại cuối cùng.

Ví dụ

Dòng lỗi + đường dẫn tệp + dòng ngăn xếp từ mã nguồn

Ví dụ yêu cầu

Nén gọn bản ghi (log) dài này thành số lượng dòng tối thiểu cần thiết để gỡ lỗi.