Xem mẫu

  1. TURBO PASCAL ERRORS CODES (CÁC MÃ LỖI CỦA TURBO PASCAL) Dịch và chú giải từ “Turbo Pascal 6: The Complete Reference” Vương Đức Bình Lời người dịch: Đố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ằng tră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ếu ké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áo lỗ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ểu thô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. Để các bạn dễ tham khảo/so sánh tôi sẽ trình bày bản dịch này dưới dạng song ngữ. Tôi không hoàn toàn giữ nguyên gốc so với nguyên bản mà có thêm ít nhiều chú thích và thêm phần nguyên nhân phát sinh ra lỗi và cách khắc phục. Một số lỗi sẽ không có phần này (cách khắc phục) vì có thể tôi chưa gặp lỗi đó bao giờ … cho nên tôi không có kinh nghiệm khắc phục. Nếu bạn biết, xin thông báo cho tôi trên forum của Tổ bộ môn CNTT http://tobomoncntt.freeforums.org/, tôi sẽ rất cảm ơn và tôi sẽ bổ sung vào đây khi có thể. I. Compiler Error Messages (Các thông báo lỗi trong quá trình biên dịch) Compiler error messages refer to problems in your code or programming environment that prevent Turbo Pascal from produccing an executable file. In the integrated development environment, Turbo Pascal will attempt to locate the source-code location of the error. Các thông báo lỗi trong quá trình biên dịch liên quan đến những vấn đề trong mã chương trình hoặc môi trường lập trình gây cản ngại cho Turbo Pascal khi tạo ra file thực thi. Trong môi trường phát triển tích hợp, Turbo Pascal sẽ cố gắng định vị trí lỗi trong mã nguồn. Lưu ý của người dịch: a) Nếu bạn sử dụng IDE (integrated development environment) thông thường vị trí phát sinh ra lỗi trong mã nguồn nằm ngay trước vị trí con trỏ văn bản. Còn nếu bạn dịch mã nguồn FILENAME.PAS bằng TPC.EXE (Turbo Pascal Compiler) theo cú pháp 1
  2. [drive:][path]TPC.EXE FILENAME.PAS  thì một thông báo lỗi dạng: Error nnn: Error message Với nnn là mã lỗi và dòng lệnh bị lỗi sẽ được hiển thị sau dấu nhắc hệ thống cùng với một dấu “^” chỉ vị trí phát sinh lỗi. b) Tiếng Anh và tiếng Việt không hoàn toàn tương đồng cho nên với cùng một thuật ngữ tiếng Anh tôi có thể sử dụng khá nhiều cách nói tiếng Việt khác nhau để dịch. Ví dụ rõ nhất là đối với từ “expected”, tôi có thể dịch là “chờ, đợi, chưa thấy, không thấy, yêu cầu, …tùy vào ngữ cảnh mà thuật ngữ đó được sử dụng … và đôi khi còn tùy vào tình huống lỗi. Trong trường hợp này - rất tiếc – đôi khi suy nghĩ trực tiếp bằng tiếng Anh là dễ dàng hơn. 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 Hoặc phải gở bỏ các chương trình đang chạy trong chế độ thường trú (SIDEKICK, v.v.) hoặc xem xét liệu virus có Mã chương trình quá 1. đang chiếm mất vùng nhớ lớn. hoặc phải sử dụng biện pháp Mã dữ liệu quá lớn. 2. overlay. Thông thường điều Bị virus. 3. này chỉ xảy ra trong môi Không đủ vùng nhớ Các chương trình 1 Out of memory 4. trường thực (Real mode). thường trú chiếm bớt Nếu bạn chạy Borland Pascal vùng nhớ qui ước trong môi trường giả lập (conventional được bảo vệ (protected memory). mode) của Windows thì không xảy ra trường hợp này được (Windows cho phép sử dụng bộ nhớ ảo) Chờ một danh biểu 2 Identifier expected 1. Quên khai báo biến. 2. Gõ sai tên biến trong 1. Khai báo danh biểu này. chương trình. 2. Sửa chữa lỗi gõ sai. Không biết danh biểu này 3 Unknown identifier 3. Gọi tới biến, danh biểu 3. Xem xét lại tầm vực của này ở ngoài tầm vực danh biểu. của nó. 2
  3. 1. Tên biến trùng với tên chương trình. 1. Đặt lại tên biến hoặc tên Danh biểu bị trùng lặp 2. Khai báo lại tên biến 4 Duplicate identifier chương trình. với kiểu dữ liệu khác trong cùng một khối. Lỗi cú pháp Sửa lỗi cú pháp 5 Syntax error Lối về hằng số thực 6 Error in real constant Lỗi về hằng số nguyên 7 Error in integer constant Quên dấu nháy “’” kết thúc chuỗi.Thông thường là do lập trình viên quên Bổ sung dấu nháy đằng sau Chuỗi dài quá một dòng 8 String constant exceeds line dấu nháy kết thúc chuỗi chuỗi. trong câu lệnh WRITE hoặc WRITELN. Quá nhiều file lồng nhau 9 Too many nested files Thông thường do lập trình Không tìm thấy kết thúc file Quên từ khóa “END.” viên quên hoặc dùng “END;” 10 Unexpected end of file ở cuối chương trình chính. Câu lệnh viết dài quá cột Ngắt câu lệnh thành nhiều 11 Line too long Dòng quá dài 128. dòng. Không thấy kiểu của danh Quên khai báo kiểu của 12 Type identifier expected biểu biến. Mở file C:\CONFIG.SYS sửa lại dòng lệnh Files=. Hệ điều hành DOS dùng con số này để quyết định cho phép mở bao nhiêu file cùng một lúc. Tăng Mở quá nhiều file cùng lúc cho thích hợp với 13 Too many open files chương trình đang viết. Mặc định là 15 nếu không được khai báo trong CONFIG.SYS. Không gặp lỗi này nếu chạy trong môi trường giả lập của Windows. 3
  4. Không tìm thấy thư mục đã định nghĩa trong Khai báo lại thư mục hoặc xác định thư mục có thuộc [Options >Directories ] Tên file không hợp lệ. để lưu file này tính Archive, bỏ thuộc tính 14 Invalid filename Thư mục để lưu file này hidden, bỏ thuộc tính read bị xác lập thuộc tính only. Hidden hoặc Read Only Xem lại đường dẫn tới tên Không tìm thấy file 15 File not found file Xóa bớt các file không cần Đĩa bị đầy thiết trên đĩa để lấy thêm chổ 16 Disk full trống cho thao tác trên đĩa. Xem lại khai báo dẫn hướng Dùng một dẫn hướng Dẫn hướng biên dịch không biên dịch. Gõ CTRL-O-O để biên dịch không có trong 17 Invalid compiler directive hợp lệ xem các dẫn hướng biên dịch qui định được Pascal hỗ trợ mặc định. Có quá nhiều file 18 Too many files Định nghĩa con trỏ trỏ tới Xem lại định nghĩa kiểu sau 19 Undefined type in pointer một kiểu chưa được định từ khóa TYPE / Xem lại tên definition nghĩa kiểu coi có gõ nhầm không. Thông thường là do Chỉ được phép truyền biến Yêu cầu danh biểu là biến 20 Variable identifier expected truyền trị cho tham biến cho tham biến mà thôi. Xem lại kiểu dữ liệu qui định Lỗi về kiểu dữ liệu 21 Error in type ở vị trí này. Cấu trúc quá lớn 22 Structure too large Kiểu cơ sở bị vượt quá phạm 23 Set base type out of range vi dữ liệu Không cho phép thành phần 24 File components may not be của file là file hoặc đối tượng files or objects Chiều dài chuỗi không hợp lệ 25 Invalid string length Hoặc khai báo lại kiểu dữ Hai vế của phép gán liệu cho phù hợp hoặc phải Không khớp kiểu dữ liệu không thuộc về cùng một 26 Type mismatch dùng biện pháp ép kiểu (type kiểu dữ liệu casting). Phạm vi không khớp với 27 Invalid subrange base type phạm vi của kiểu cơ sở 4
  5. 28 Lower bound greater than upper Cận dưới lớn hơn cận trên Khai báo lại bound Yêu cầu kiểu dữ liệu có thứ Sử dụng kiểu dữ liệu có thứ 29 Ordinal type expected tự tự (kiểu đếm được) Yêu cầu hằng số nguyên 30 Integer constant expected. Yêu cầu hằng số 31 Constant expected Yêu cầu hằng số nguyên 32 Integer or real constant hoặc hằng số thực expected. Không thấy định nghĩa kiểu Khai báo kiểu 33 Type identifier expected Kiểu dữ liệu trả về của Kiểu dữ liệu trả về của hàm Khai báo lại kiểu dữ liệu trả hàm không phải là kiểu 34 Invalid function result type không hợp lệ về. đơn giản, chuẩn Quên khai báo LABEL Yêu cầu danh biểu là một trước khi dùng câu lệnh 35 Label identifier expected nhãn GOTO Thông thường lỗi này là do lập trình viên gõ sai Kiểm tra lỗi gõ sai các từ các từ khóa trước BEGIN khóa, các khai báo trước Không thấy BEGIN của chương trình chính 36 Begin expected BEGIN của chương trình nên trình biên dịch hiểu chính. nhầm đã bắt đầu câu lệnh mà không có BEGIN. Thiếu từ khóa END tương ứng của BEGIN Không thấy END hoặc của khai báo 37 End expected RECORD hoặc của cấu trúc CASE Chờ một biểu thức nguyên 38 Integer expression expected Chờ một biểu thức thứ tự 39 Ordinal expression expected Chờ một biểu thức logic 40 Boolean expression expected Toán hạng không phù hợp Xem xét lại biểu thức xảy ra 41 Operand types do not match với toán tử lỗi. operator Có lỗi trong biểu thức 42 Error in expression Phép gán bất hợp lệ 43 Illegal assignment Chờ một danh biểu trường 44 Field identifier expected File đối tượng quá lớn 45 Object file too large 5
  6. Sử dụng/gọi một thủ tục biên dịch sẳn dạng Khai báo thủ tục hoặc hàm Chưa định nghĩa External thức .BIN nhưng chưa 46 Undefined external EXTERNAL. khai báo thủ tục này là EXTERNAL Bản ghi của đối tượng file 47 Invalid object-file record không đúng Đoạn mã chương trình quá 48 Code segment too large l ớn Đoạn mã dữ liệu quá lớn 49 Data segment too large Viết thiếu từ khóa DO Chờ DO sau câu lệnh FOR hoặc 50 Do expected WHILE Định nghĩa public không 51 Invalid public definition đúng Định nghĩa External không 52 Invalid Extern definition đúng Quá nhiều định nghĩa 53 Too many Extern definitions External Viết thiếu từ khóa OF Chờ OF 54 Of expected trong câu lệnh CASE Viết thiếu từ khóa Chờ INTERFACE INTERFACE trong cấu 55 Interface expected trúc của UNIT. Liên hệ tái định vị không 56 Invalid relocatable reference đúng. Viết thiếu từ khóa THEN Chờ THEN 57 Then expected trong câu lệnh IF Viết thiếu từ khóa Chờ TO hoặc DOWNTO 58 To or Downto expected TO/DOWNTO trong câu lệnh FOR Các thủ tục gọi lẫn nhau nhưng quên khai báo Phải khai báo FORWARD Chưa định nghĩa FORWARD. Thường cho tất cả thủ tục, hàm có gọi 59 Undefined forward FORWARD xảy ra trong trường hợp lẫn nhau. đệ qui hỗ tương. Quá nhiều PROCEDURE 60 Too many procedures 6
  7. Ép kiểu không đúng 61 Invalid typecast 1. Thực hiện một phép chia cho 0 trong biểu 1. Xem lại biểu thức. thức. 2. Cập nhật file Chia cho số 0 2. Unit CRT bị lỗi do tốc 62 Division by zero TURBO.TPL (Trong độ bộ xử lí lớn hơn hướng dẫn sửa lỗi khi cài 300 MHz. (Từ các đời đặt TURBO PASSCAL) máy 80846 trở đi) Kiểu file không đúng 63 Invalid file type Thông thường là do Không thể đọc hoặc ghi biến Đọc/Ghi gián tiếp cho kiểu 64 Cannot read or write variables muốn đọc hoặc ghi trực thuộc kiểu dữ liệu này dữ liệu này. of this type tiếp dữ liệu kiểu Boolean Chờ biến kiểu con trỏ 65 Pointer variable expected Chờ biến kiểu chuỗi 66 String variable expected Chờ biểu thức chuỗi 67 String expression expected Liên hệ Unit lòng vòng Các Unit gọi lẫn nhau. 68 Circular unit reference Tên Unit không khớp 69 Unit name mismatch Phiên bản Unit không khớp 70 Unit version mismatch Trùng lặp tên Unit 71 Duplicate unit name Lỗi trong dạng thức file Unit 72 Unit file format error Viết thiếu từ khóa Chờ IMPLEMENTATION 73 Implementation expected IMPLEMENTATION trong cấu trúc của UNIT. Hằng và kiểu giá trị hằng 74 Constant and case types do not không khớp. match Chờ đợi biến kiểu bản ghi 75 Record variable expected Hằng vượt quá phạm vi 76 Constant out of range Chờ biến kiểu File 77 File variable expected Chờ biểu thức kiểu con trỏ 78 Pointer expression expected Chờ biểu thức nguyên hoặc 79 Integer or real expression thực expected Xem lại vị trí định nghĩa Nhãn không thuộc về block nhãn hoặc xem lại tầm vực 80 Label not within current block hiện tại của nhãn. Nhãn này đã được định nghĩa 81 Label already defined rồi 7
  8. Nhãn chưa được định nghĩa 82 Undefined label in preceding trong phần phát biểu trước statement part Sử dụng sai đối số @ 83 Invalid @ argument Chờ đợi Unit 84 Unit expected “;” expected Chờ đợi “;” Thêm “;” 85 “:” expected Chờ đợi “:” Thêm “:” 86 “,” expected Chờ đợi “,” Thêm “,” 87 “(“ expected Chờ đợi “(“ Thêm “(“ 88 Đây là những lỗi khá phổ “)” expected Chờ đợi “)” Thêm “)” 89 biến. Thông thường là do “=” expected Chờ đợi “=” Thêm “=” 90 gõ sai hoặc gõ sót các “:=” expected Chờ đợi “:=” Thêm “:=” 91 token “;”,…. “[“ or “(.” expected Chờ đợi “[“ hoặc “(.” Thêm “[“ hoặc “(.” 92 “]” or “.)” expected Chờ đợi “]” hoặc “.)” Thêm “]” hoặc “.)” 93 “.” expected Chờ đợi “.” Thêm “.” 94 “..” expected Chờ đợi “..” Thêm “..” 95 Giảm bớt số biến đã khai báo. Thông thường nên tăng Quá nhiều biến 96 Too many variables cường sử dụng biến cục bộ thay cho biến toàn cục Đã dùng biến điều khiển Biến điều khiển vòng lặp Thay đổi kiểu của biến điều vòng lặp thuộc kiểu 97 Invalid For control variable FOR không thích hợp khiển vòng lặp FOR. không có thứ tự Chờ một biến kiểu số nguyên 98 Integer variable expected Không cho phép dùng File ở 99 Files are not allowed here đây Chiều dài của chuỗi không 100 String length mismatch khớp Thứ tự các field không đúng 101 Invalid ordering of fields Chờ đợi một hằng chuỗi 102 String constant expected Chờ đợi biến nguyên hoặc 103 Integer or real variable expected thực Chờ đợi biến thứ tự 104 Ordinal variable expected Xem lại các đoạn mã Chèn mã assembly trực assembly. Đảm bảo đúng cú Lỗi INLINE tiếp vào chương trình 105 Inline error pháp của Microsoft nguồn gây ra lỗi. Assembly. Chờ đợi biểu thức kí tự 106 Character expression expected 8
  9. Quá nhiều mục tái định vị 107 Too many relocation items 108 109 110 111 Hằng trị trong câu lệnh 112 Case constant out of range CASE vượt quá phạm vi Sai lầm trong câu lệnh 113 Error in statement 114 Cannot call an interrupt Không gọi được thủ tục ngắt procedure 115 - Lỗi này không xảy ra nữa kể từ thế hệ máy 80386 DX. Cần bộ xử lí dấu chấm động 116 Must be in 8087 mode to - Trong menu [Options > 8087 để biên dịch phần này compile this Compiler] đánh dấu kiểm vào ô 8087/80287. Không tìm thấy địa chỉ mục 117 Target address not found tiêu Không được phép INCLUDE 118 Include files are not allowed file ở vị trí này here 119 Chờ đợi con trỏ NIL 120 Nil expected Danh biểu không đúng 121 Invalid qualifier Liên hệ biến không đúng 122 Invalid variable reference Có quá nhiều kí hiệu 123 Too many symbols Câu lệnh quá dài 124 Statement part too long 125 Phải khai báo tham biến cho Đã khai báo biến kiểu Phải sử dụng tham biến cho mọi tham số kiểu File trong file như là một tham trị 126 Files must be Var parameters kiểu dữ liệu File header của Procedure hoặc trong header Function. Quá nhiều kí hiệu điều kiện 127 Too many conditional symbols Đặt dẫn hướng điều kiện 128 Misplaced conditional directive không đúng chỗ Sai lầm ở dẫn hướng ENDIF 129 ENDIF directive missing Sai lầm ở khởi tạo định nghĩa 130 Error in initial conditional điều kiện defines 9
  10. Khai báo các header trong HEADER không khớp với phần INTERFACE và trong 131 Header does not match previous định nghĩa trước đó. IMPLEMENTATION của definition Unit phải khớp nhau. Đây là lỗi khá khó chịu! Có thể đĩa bị hỏng, bị lỗi Đĩa có lỗi nghiêm trọng Xem xét lại ổ đĩa và đĩa 132 Critical disk error CRC, quên bẻ chốt khóa (đối với ổ đĩa mềm),… Không lượng giá biểu thức Xem xét lại cú pháp của biểu 133 Cannot evaluate this expression này được thức. Thông thường là do thiếu 134 Expression incorrectly Biểu thức kết thúc sai toán hạng, thiếu dấu “)” terminated Sai ở bộ xác định dạng thức 135 Invalid format specifier Liên hệ gián tiếp sai 136 Invalid indirect reference Không cho phép biến có cấu 137 Structured variables are not Sử dụng biến kiểu đơn giản. trúc ở đây. allowed here. 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ó - Tích hợp SYSTEM.TPU Không thể lượng giá mà thể là do Unit SYSTEM vào TURBO.TPL trở lại. 138 Cannot evaluate without đã bị gỡ bỏ khỏi SYSTEM unit không có unit SYSTEM - Khai báo USES TURBO.TPL. Dùng SYSTEM; TPUMOVER.EXE để xem lại các Unit còn đang được tích hợp trong TURBO.TPL Có thể phải khai báo dẫn Không thể truy cập kí hiệu hướng biên dịch {$ F+} - 139 Cannot access this symbol Force far call - để truy cập/ này gọi được kí hiệu này Tác vụ xử lí dấu chấm động 140 Invalid floating-point operation sai Không thể biên dịch Overlay 141 Cannot compile overlays to vào bộ nhớ memory 10
  11. Chờ đợi biến thủ tục hoặc 142 Procedure or function variable biến hàm. expected 143 Invalid procedure or function Liên hệ thủ tục hoặc hàm sai reference Không thể overlay unit này 144 Cannot overlay this unit 145 146 Chờ đợi kiểu đối tượng 147 Object type expected Không cho phép dùng kiểu 148 Local object types are not đối tượng ở đây. allowed here Chờ đợi VIRTUAL (phương 149 VIRTUAL expected thức ảo) Chờ đợi danh biểu là phương 150 Method identifier expected thức Không cho phép phương 151 Virtual constructors are not thức thiết lập ảo allowed Chờ đợi danh biểu CONSTRUCTOR (phương 152 Constructor identifier expected thức thiết lập) Chờ đợi danh biểu DESTRUCTOR (phương 153 Destructor identifier expected thức hủy) Chỉ cho phép Fail bên trong 154 Fail only allowed within constructors CONSTRUCTOR Sai lầm trong phối hợp mã 155 Invalid combination of opcode lệnh và toán hạng and operands Chờ đợi một tham khảo đến 156 Memory reference expected bộ nhớ. Không thể thêm hoặc bớt các 157 Cannot add or substract kí hiệu khả tái định vị relocatable symbols Phối hợp sai thanh ghi 158 Invalid register combination Không thể dùng các chỉ thị Chỉ xảy ra trên các máy 159 286/287 Instructions are not enabled 286/287 8088/8086. Liên hệ kí hiệu sai 160 Invalid symbol reference Lỗi phát sinh mã 161 Code generation error. 11
  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 Không tìm thấy File 2 File not found Xem lại tên file, đường dẫn. Không tìm thấy đường dẫn 3 Path not found Như lỗi số 13 compile time Mở quá nhiều File cùng lúc 4 Too many open files error. 1. File còn đang được mở bởi một chương trình khác. Bị từ chối truy cập File 5 File access denied 2. Ghi đè lên một file đang có thuộc tính read only. Sai ở thẻ File 6 Invalid file handle Sai khi truy cập File 12 Invalid file access code Truy cập một ổ đĩa không Sai ở số hiệu ổ đĩa 15 Invalid drive number được hỗ trợ bởi Turbo Pascal. 1. Thư mục đang được gán 1. Set lại thuộc tính thư mục. Không gỡ bỏ thư mục này thuộc tính Read only. 2. Xóa hết các File đang còn 16 Cannot remove current được 2. Thư mục đang còn chứa tồn tại trong thư mục, kể cả directory các file ẩn. File. File cũ và File đó mới được Không thể đặt lại tên File từ 17 Cannot rename across đặt tên lại phải nằm trong đĩa này qua đĩa kia drives cùng thư mục. I/O Errors 12
  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 Lỗi đọc đĩa 100 Disk read error Xem lại đĩa Lỗi ghi đĩa 101 Disk write error File chưa được gán Thiếu câu lệnh Assign(File, 102 File not assigned Filename) File chưa được mở Thiếu câu lệnh Reset(File) 103 File not open Xem lại chương trình File not open for input File chưa được mở để ghi Thiếu câu lệnh Rewrite(File) 104 File not open for output File không được mở để ghi Ghi lên một File đã bị đóng 105 bởi lệnh Close(File) Thủ tục Read hoặc Readln của Pascal được quá tải cho nhiều Đừng sử dụng các thủ tục kiểu dữ liệu khác nhau nên Read hoặc Readln được cung gây ra lỗi này khi người dùng Sai dạng thức dữ liệu số cấp sẳn. Lập trình viên nên 106 Invalid numeric format nhập dữ liệu kiểu chữ thay vì viết riêng cho mình các thủ tục nhập dữ liệu kiểu số cho một nhập có kiểm tra dữ liệu nhập. biến kiểu số. 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 Bật tab write-protected về chế Đĩa bị chống ghi 105 Disk is write-protected độ write enabled. 151 Unkown unit Không có Unit này Ổ đĩa chưa sẳn sàng Xem lại ổ đĩa 152 Drive not ready Xem lại câu lệnh và tham số Không biết câu lệnh này 153 Unknown command dòng lệnh. 1. Cập nhật lại file dữ liệu. CRC: Cyclic Redundancy Dữ liệu bị lỗi CRC 2. Kiểm tra lại tình trạng vật lí 154 CRC error in data Check. Lỗi ở mã vòng sửa sai. của đĩa. Sai trong cấu trúc dữ liệu của 155 Bad drive request đĩa. structure length 1. Có thể do cross-link file. Sai khi đọc đĩa Xem lại đĩa. 156 Disk seek error 2. Có thể do bảng FAT (File 13
  14. allocation table) hoặc bảng DIR bị hỏng. Đĩa được Format bởi một hệ điều hành khác hoặc một ổ đĩa Không biết kiểu dữ liệu này Sử dụng đĩa đúng format. 157 Unknown media type chưa được hỗ trợ bởi Turbo Pascal. 1. Đĩa bị hỏng Sử dụng đĩa khác để ghi/đọc Không tìm thấy cung từ này 158 Sector not found 2. Lỗi cross-link file dữ liệu Máy in hết giấy 159 Printer out of paper Lỗi xuất ra thiết bị Kiểm tra lại các thiết bị liên 160 Device write fault Lỗi khi đọc từ thiết bị quan. 161 Device read fault Lỗi phần cứng 162 Hardware failure 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ú Kiểm tra lại diễn tiến của các Thực hiện phép chia cho số 0 200 Division by zero biến trong chương trình Dùng dẫn hướng biên dịch Lỗi vượt quá phạm vi dữ liệu 201 Range check error {$R-} nhưng phải cẩn thận. Đây là các lỗi làm 1. Kiểm tra lại tổng kích dừng ngay chương thước các biến đã khai báo trình đang thực thi. trong chương trình, trong Một số trường hợp có từng thủ tục. thể gây Halt toàn bộ 2. Giới hạn độ sâu của các hệ thống. Lỗi tràn stack 202 Stack overflow error lời gọi đệ qui. Thông thường lập 3. Dùng dẫn hướng biên dịch trình viên cần phải {$M xxxx, yy, zzzz} để yêu xem lại phân tích cầu một vùng stack lớn hơn lôgich của chương (xxxx: stack size). trình để sử dụng các 1. Giới hạn số lời gọi cấp kiểu dữ liệu khác phát con trỏ qua lệnh NEW. thích hợp hơn. 2. Phối hợp sử dụng các lệnh Lỗi tràn Heap 203 Heap overflow error NEW, Mark, Dispose và Release để quản lí tốt hơn vùng Heap 14
  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). Tác vụ con trỏ không đúng 204 Invalid pointer operation Lỗi xử lí đấu chấm động bị Dùng kiểu dữ liệu có phạm 205 Floating-point overflow tràn. vi lớn hơn (Dùng kiểu Lỗi xử lí dấu chấm động bị Extended thay cho kiểu Real) 206 Floating-point underflow hụt Sai ở tác vụ dấu chấm động. 207 Invalid floating-point operation Chưa cài đặt trình quản lí 208 Overlay manager not installed overlay. Bị lỗi khi đọc file overlay. 209 Overlay file read error Chưa khởi tạo đối tượng. 210 Object not initialized Gọi tới một phương thức 211 Call to abstract method trừu tượng Lỗi đăng kí dòng dữ liệu. 212 Stream registration error Chỉ mục tuyển tập vượt quá 213 Collection index out of range phạm vi Lỗi tràn tuyển tập 214 Collection overflow error. 15
nguon tai.lieu . vn