Các mã lỗi của Turbo Pascal
Đối với người mới học lập trình, viết chương trình bị lỗi là chuyện “thường ngày ở huyện”. Mỗi ngôn ngữ đều dự trù hằngtrăm, nếu không nói là hàng ngàn, thông báo lỗi khác nhau như một sự trợ giúp để chúng ta khắc phục lỗi đó. Một số thông báo lỗi thìđơn giản, rõ ràng nhưng một số thông báo lỗi có thể dẫn những lập trình viên “mới chập chửng” vào một trò chơi trốn tìm rất đau đầuđến nỗi có khi chính sự trợ giúp này lại gây ra vấn đề còn lớn hơn cả bản thân lỗi. Vì lẽ đó đọc hiểu được các thông báo lỗi và từ đó
suy ra cách khắc phục lỗi cũng là một yêu cầu quan trọng trong quá trình học lập trình.
Mặt khác, thực tế đa số sinh viên CNTT trong năm đầu thường không đủ vốn từ vựng về thuật ngữ tin học, cộng với sự yếukém về giảng dạy ngoại ngữ thâm căn cố đế do các trường PTTH gây ra làm cho sinh viên không đủ năng lực đọc hiểu các thông báolỗi trực tiếp bằng tiếng Anh. Tài liệu này chỉ mong làm được có một việc: giúp các bạn sinh viên đó tiếp cận dễ hơn với việc đọc hiểuthông báo lỗi. Nhưng các bạn cũng đừng ỷ lại vào tài liệu này. Tốt hơn hết các bạn nên tập làm quen dần với việc đọc trực tiếp, suy
nghĩ trực tiếp bằng tiếng Anh. Tiếng Việt thì đẹp đẻ và là ngôn ngữ của cha ông mà chúng ta cần trân quí và làm cho nó phát triển.
Nhưng ở đây là khoa học kỹ thuật, bạn cần xây dựng khả năng tiếp cận thật nhanh thông tin khoa học kỹ thuật.
d here Không được phép INCLUDE file ở vị trí này 119 120 Nil expected Chờ đợi con trỏ NIL 121 Invalid qualifier Danh biểu không đúng 122 Invalid variable reference Liên hệ biến không đúng 123 Too many symbols Có quá nhiều kí hiệu 124 Statement part too long Câu lệnh quá dài 125 126 Files must be Var parameters Phải sử dụng tham biến cho kiểu dữ liệu File Đã khai báo biến kiểu file như là một tham trị trong header Phải khai báo tham biến cho mọi tham số kiểu File trong header của Procedure hoặc Function. 127 Too many conditional symbols Quá nhiều kí hiệu điều kiện 128 Misplaced conditional directive Đặt dẫn hướng điều kiện không đúng chỗ 129 ENDIF directive missing Sai lầm ở dẫn hướng ENDIF 130 Error in initial conditional defines Sai lầm ở khởi tạo định nghĩa điều kiện 10 131 Header does not match previous definition HEADER không khớp với định nghĩa trước đó. Khai báo các header trong phần INTERFACE và trong IMPLEMENTATION của Unit phải khớp nhau. 132 Critical disk error Đĩa có lỗi nghiêm trọng Đây là lỗi khá khó chịu! Có thể đĩa bị hỏng, bị lỗi CRC, quên bẻ chốt khóa (đối với ổ đĩa mềm),… Xem xét lại ổ đĩa và đĩa 133 Cannot evaluate this expression Không lượng giá biểu thức này được Xem xét lại cú pháp của biểu thức. 134 Expression incorrectly terminated Biểu thức kết thúc sai Thông thường là do thiếu toán hạng, thiếu dấu “)” 135 Invalid format specifier Sai ở bộ xác định dạng thức 136 Invalid indirect reference Liên hệ gián tiếp sai 137 Structured variables are not allowed here. Không cho phép biến có cấu trúc ở đây. Sử dụng biến kiểu đơn giản. 138 Cannot evaluate without SYSTEM unit Không thể lượng giá mà không có unit SYSTEM Thông thường Unit SYSTEM được tải lên mặc định khi gọi Pascal mà không cần khai báo qua câu lệnh USES. Có thể là do Unit SYSTEM đã bị gỡ bỏ khỏi TURBO.TPL. Dùng TPUMOVER.EXE để xem lại các Unit còn đang được tích hợp trong TURBO.TPL - Tích hợp SYSTEM.TPU vào TURBO.TPL trở lại. - Khai báo USES SYSTEM; 139 Cannot access this symbol Không thể truy cập kí hiệu này Có thể phải khai báo dẫn hướng biên dịch {$ F+} - Force far call - để truy cập/ gọi được kí hiệu này 140 Invalid floating-point operation Tác vụ xử lí dấu chấm động sai 141 Cannot compile overlays to memory Không thể biên dịch Overlay vào bộ nhớ 11 142 Procedure or function variable expected Chờ đợi biến thủ tục hoặc biến hàm. 143 Invalid procedure or function reference Liên hệ thủ tục hoặc hàm sai 144 Cannot overlay this unit Không thể overlay unit này 145 146 147 Object type expected Chờ đợi kiểu đối tượng 148 Local object types are not allowed here Không cho phép dùng kiểu đối tượng ở đây. 149 VIRTUAL expected Chờ đợi VIRTUAL (phương thức ảo) 150 Method identifier expected Chờ đợi danh biểu là phương thức 151 Virtual constructors are not allowed Không cho phép phương thức thiết lập ảo 152 Constructor identifier expected Chờ đợi danh biểu CONSTRUCTOR (phương thức thiết lập) 153 Destructor identifier expected Chờ đợi danh biểu DESTRUCTOR (phương thức hủy) 154 Fail only allowed within constructors Chỉ cho phép Fail bên trong CONSTRUCTOR 155 Invalid combination of opcode and operands Sai lầm trong phối hợp mã lệnh và toán hạng 156 Memory reference expected Chờ đợi một tham khảo đến bộ nhớ. 157 Cannot add or substract relocatable symbols Không thể thêm hoặc bớt các kí hiệu khả tái định vị 158 Invalid register combination Phối hợp sai thanh ghi 159 286/287 Instructions are not enabled Không thể dùng các chỉ thị 286/287 Chỉ xảy ra trên các máy 8088/8086. 160 Invalid symbol reference Liên hệ kí hiệu sai 161 Code generation error. Lỗi phát sinh mã 12 II. Run-time error messages A run-time error is an error condition that occurs while your program is running. When such an error occurs, Turbo Pascal display this message: Run-time error nnn at xxxx:yyyy Where nnnn is the numeric code for the run-time error, xxxx is the program segment in which the error occurred, and yyyy is the offset of the location of the error. Lỗi trong thời gian chạy là lỗi xảy ra khi bạn đang cho chương trình hoạt động. Khi loại lỗi này xảy ra, Turbo Pascal cho hiện thông báo này: Run-time error nnn at xxxx:yyyy Trong đó nnn là mã lỗi, xxxx là phân đoạn của chương trình và yyyy là độ dời trong phân đoạn tại vị trí mã lệnh gây ra lỗi. Dos Errors Lỗi thuộc hệ điều hành đĩa. Mã lỗi và thông báo lỗi Ý nghĩa Các nguyên nhân có thể Hướng khắc phục 2 File not found Không tìm thấy File Xem lại tên file, đường dẫn. 3 Path not found Không tìm thấy đường dẫn 4 Too many open files Mở quá nhiều File cùng lúc Như lỗi số 13 compile time error. 5 File access denied Bị từ chối truy cập File 1. File còn đang được mở bởi một chương trình khác. 2. Ghi đè lên một file đang có thuộc tính read only. 6 Invalid file handle Sai ở thẻ File 12 Invalid file access code Sai khi truy cập File 15 Invalid drive number Sai ở số hiệu ổ đĩa Truy cập một ổ đĩa không được hỗ trợ bởi Turbo Pascal. 16 Cannot remove current directory Không gỡ bỏ thư mục này được 1. Thư mục đang được gán thuộc tính Read only. 2. Thư mục đang còn chứa File. 1. Set lại thuộc tính thư mục. 2. Xóa hết các File đang còn tồn tại trong thư mục, kể cả các file ẩn. 17 Cannot rename across drives Không thể đặt lại tên File từ đĩa này qua đĩa kia File cũ và File đó mới được đặt tên lại phải nằm trong cùng thư mục. I/O Errors 13 Lỗi các thao tác nhập/xuất Mã lỗi và thông báo lỗi Ý nghĩa Các nguyên nhân có thể Hướng khắc phục 100 Disk read error Lỗi đọc đĩa Xem lại đĩa 101 Disk write error Lỗi ghi đĩa 102 File not assigned File chưa được gán Thiếu câu lệnh Assign(File, Filename) Xem lại chương trình 103 File not open File chưa được mở Thiếu câu lệnh Reset(File) 104 File not open for input File chưa được mở để ghi Thiếu câu lệnh Rewrite(File) 105 File not open for output File không được mở để ghi Ghi lên một File đã bị đóng bởi lệnh Close(File) 106 Invalid numeric format Sai dạng thức dữ liệu số Thủ tục Read hoặc Readln của Pascal được quá tải cho nhiều kiểu dữ liệu khác nhau nên gây ra lỗi này khi người dùng nhập dữ liệu kiểu chữ thay vì nhập dữ liệu kiểu số cho một biến kiểu số. Đừng sử dụng các thủ tục Read hoặc Readln được cung cấp sẳn. Lập trình viên nên viết riêng cho mình các thủ tục nhập có kiểm tra dữ liệu nhập. Critical Errors Các lỗi nghiêm trọng Mã lỗi và thông báo lỗi Ý nghĩa Các nguyên nhân có thể Hướng khắc phục 105 Disk is write-protected Đĩa bị chống ghi Bật tab write-protected về chế độ write enabled. 151 Unkown unit Không có Unit này 152 Drive not ready Ổ đĩa chưa sẳn sàng Xem lại ổ đĩa 153 Unknown command Không biết câu lệnh này Xem lại câu lệnh và tham số dòng lệnh. 154 CRC error in data Dữ liệu bị lỗi CRC CRC: Cyclic Redundancy Check. Lỗi ở mã vòng sửa sai. 1. Cập nhật lại file dữ liệu. 2. Kiểm tra lại tình trạng vật lí của đĩa. 155 Bad drive request structure length Sai trong cấu trúc dữ liệu của đĩa. 156 Disk seek error Sai khi đọc đĩa 1. Có thể do cross-link file. 2. Có thể do bảng FAT (File Xem lại đĩa. 14 allocation table) hoặc bảng DIR bị hỏng. 157 Unknown media type Không biết kiểu dữ liệu này Đĩa được Format bởi một hệ điều hành khác hoặc một ổ đĩa chưa được hỗ trợ bởi Turbo Pascal. Sử dụng đĩa đúng format. 158 Sector not found Không tìm thấy cung từ này 1. Đĩa bị hỏng 2. Lỗi cross-link file Sử dụng đĩa khác để ghi/đọc dữ liệu 159 Printer out of paper Máy in hết giấy Kiểm tra lại các thiết bị liên quan. 160 Device write fault Lỗi xuất ra thiết bị 161 Device read fault Lỗi khi đọc từ thiết bị 162 Hardware failure Lỗi phần cứng Fatal Errors Các lỗi chí tử. Mã lỗi và thông báo lỗi Ý nghĩa Hướng khắc phục Ghi chú 200 Division by zero Thực hiện phép chia cho số 0 Kiểm tra lại diễn tiến của các biến trong chương trình Đây là các lỗi làm dừng ngay chương trình đang thực thi. Một số trường hợp có thể gây Halt toàn bộ hệ thống. Thông thường lập trình viên cần phải xem lại phân tích lôgich của chương trình để sử dụng các kiểu dữ liệu khác thích hợp hơn. 201 Range check error Lỗi vượt quá phạm vi dữ liệu Dùng dẫn hướng biên dịch {$R-} nhưng phải cẩn thận. 202 Stack overflow error Lỗi tràn stack 1. Kiểm tra lại tổng kích thước các biến đã khai báo trong chương trình, trong từng thủ tục. 2. Giới hạn độ sâu của các lời gọi đệ qui. 3. Dùng dẫn hướng biên dịch {$M xxxx, yy, zzzz} để yêu cầu một vùng stack lớn hơn (xxxx: stack size). 203 Heap overflow error Lỗi tràn Heap 1. Giới hạn số lời gọi cấp phát con trỏ qua lệnh NEW. 2. Phối hợp sử dụng các lệnh NEW, Mark, Dispose và Release để quản lí tốt hơn vùng Heap 15 3. Dùng dẫn hướng biên dịch {$M xxxx,yy,zzzz} để yêu cầu một vùng heap lớn hơn (yy: heapmin; zzzz: heapmax). 204 Invalid pointer operation Tác vụ con trỏ không đúng 205 Floating-point overflow Lỗi xử lí đấu chấm động bị tràn. Dùng kiểu dữ liệu có phạm vi lớn hơn (Dùng kiểu Extended thay cho kiểu Real) 206 Floating-point underflow Lỗi xử lí dấu chấm động bị hụt 207 Invalid floating-point operation Sai ở tác vụ dấu chấm động. 208 Overlay manager not installed Chưa cài đặt trình quản lí overlay. 209 Overlay file read error Bị lỗi khi đọc file overlay. 210 Object not initialized Chưa khởi tạo đối tượng. 211 Call to abstract method Gọi tới một phương thức trừu tượng 212 Stream registration error Lỗi đăng kí dòng dữ liệu. 213 Collection index out of range Chỉ mục tuyển tập vượt quá phạm vi 214 Collection overflow error. Lỗi tràn tuyển tập
File đính kèm:
- Các mã lỗi của Turbo Pascal.pdf