Modul là một thư viện các khai báo (biến, thủ tục, hàm) để ghép với các chương trình sử dụng chúng chứ không dùng để thực hiện độc lập.. Lỗi 111.[r]
(1)LỖI TRONG TURBO PASCAL (Phần 1)
1 Lỗi cú pháp lỗi phát sinh lập trình viên viết sai quy định văn phạm của hệ thống ngơn ngữ Thí dụ lỗi sau lỗi cú pháp: (a + b * 2: thiếu dấu đóng ngoặc BEGIM: định viết BEGIN, sai N
2 Xử lý lỗi Lỗi cú pháp phát trình dịch Turbo Pascal 5.0 báo lỗi cú pháp theo nguyên tắc "Mỗi lần báo lỗi" Nếu gặp lỗi ta cần trở chế độ soạn thảo, tìm vị trí xuất lỗi, sửa lại lỗi dịch lại chương trình Sau báo lỗi, Turbo Pascal chờ ta bấm phím ESC để trở chế độ soạn thảo Con trỏ hình soạn thảo đặt cạnh vị trí xuất lỗi, thơng thường ký tự.
3 Các thông báo lỗi thường gặp gợi ý khắc phục.
Lỗi 1. Out of memory: vượt miền nhớ Chương trình dịch thiếu miền nhớ Vài gợi ý khắc phục:
a Nếu mục COMPILE/DESTINATION (nơi đặt chương trình đích tức chương trình dịch ghi tệp tên với chương trình nguồn có phần mở rộng EXE) đặt MEMORY đổi thành DISK cách bấm phím ENTER (cịn gọi phím RETURN)
b Nếu mục OPTIONS/COMPILER/LINK đặt MEMORY đổi thành DISK cách bấm phím ENTER
c Bỏ chương trình thường trú, chẳng hạn SIDKICK, NC v.v
d Thử khỏi TURBO.EXE, dịch lại chương trình bạn với lệnh TCP sau: TCP Chương trình dịch TCP chiếm miền nhớ Nếu biện pháp nói khơng mang lại kết tức chương trình bạn qúa lớn Hãy chia thành đơn thể nhỏ
Lỗi 2. Identifier expected: mong gặp định danh
Lỗi 3. Unknown identifier: định danh chưa khai báo Hãy khai báo định danh đầu thủ tục chương trình
Lỗi 4. Duplicate identifier: định danh khai báo lần trở lên
Lỗi 5. Syntax error: Lỗi cú pháp Gặp ký tự sai viết sai
Lỗi 6. Error in real constant: Viết sai thực
Lỗi 7. Error in integer constant: Viết sai nguyên Chú ý khai báo CONST c = 1234 cho ta c kiểu nguyên Muốn có kiểu thực, ta viết CONST c = 1234.0 Những có giá trị nằm ngồi khoảng -2147483648 2147483647 cần khai báo theo kiểu thực, thí dụ: CONST c = 12345678912.0;
(2)Lỗi 9 Too many nested files: nhiều tệp lồng nhau.Chương trình dịch cho phép lồng không tệp Lỗi 10 Unexpected end of file: Cần gặp dấu kết tệp
Lỗi 10. xuất trường hợp sau: - Trong trương trình cặp BIGIN END không cân đối - Tệp khác gọi lồng vị trí khơng hợp lệ - Chú thích chưa đóng dấu } * )
Lỗi 11. Line too long: Dòng dài Bộ soạn thảo cho phép phát sinh dòng dài tối đa 249 ký tự khi chương trình dịch làm việc với dòng dài tối đa 126 ký tự Lời khun: Khơng nên viết dịng dài q 60 ký tự
Lỗi 12. Type identifier expected: Cần có định danh kiểu
Lỗi 13. Too many open files Có thể mở tối đa 20 tệp Muốn tệp CONFIG SYS cần có dịng khai báo FILES = 20 Lời khuyên: Nên mở chừng 15 tệp vừa có nhu cầu Hãy đưa dịng sau đây: FILES = 15 vào tệp CONFIG.SYS Khởi động lại máy gọi lại TP
Lỗi 14. Invalid file name: Sai tên tệp Tên tệp đặt theo quy định DOS
Lỗi 15. File not found: Khơng tìm thấy tên thư mục Trong số trường hợp TP cần có tệp phụ trợ, thí dụ EGAVGA BGI cho hình chế độ đồ thị Bạn cần đặt tệp vào thư mục hành rõ đường dẫn để truy nhập tới chúng
Lỗi 16. Disk full: đĩa đầy hết chỗ ghi Hãy xố số tệp khơng cần dùng dùng đĩa mềm (cho ổ A, B)
Lỗi 17 Invalid compiler directive: Đặt sai chế độ dịch Lời khuyên: Không nên lạm dụng chế độ dịch Các chế độ ngầm định đủ cho bạn Hãn hữu đặt tạm thời chế độ dịch, sau trả lại trạng thái cũ cho Thí dụ, mẫu sau thường dùng để kiểm tra tồn assign (f, fname); { $ I - } reset (f); { $ I + ) IF IORESULT = THEN { tệp tồn ) ELSE {tệp khơng tồn tại} Trong f biến tệp, fname xâu chứa tên tệp
Lỗi 18. Too many files: Q nhiều tệp Chương trình địi hỏi q nhiều tệp Sự địi hỏi thái q phát sinh nguyên nhân sau: - Đặt nhiều chế độ khiến chương trình dịch phải mở nhiều tệp - Các module gọi móc nối, liên hồn, module lại đòi hỏi số tệp Lời khuyên: Ngay từ đầu chọn cấu trình tối thiểu cho chương trình Cần có danh sách kiểu, biến tệp tổng thể mà chương trình gọi tới
Lỗi 19. Undefined type in pointer definition: Kiểu chưa định nghĩa định nghĩa trỏ Thí dụ, khai báo var P: ^ptype; Nếu trước ta chưa định nghĩa kiểu ptype sinh lỗi 19
Lỗi 20. Variable identifier expected: Cần định danh cho biến Thí dụ FOR = TO 20 DO sinh lỗi 20
(3)Lỗi 22. Structure too large: Kiểu cấu trúc có kích thước q lớn Cỡ tối đa cấu trúc TP 65520 byts
Lỗi 23. Set base type of range: Kiểu tập sở vượt giới hạn Giới hạn kiểu đoạn dùng làm tập sở 255, giới hạn kiểu liệt kê dùng làm tập sở 256 phần tử Thí dụ khai báo sau sinh lỗi 23: Var S: set of -8 300;
Lỗi 24. File components may not be files: Thành phần tệp khơngthể tệp Thí dụ, khai báo TYPE FTEXT = FILE OF TEXT; Lỗi 24 TEXT kiểu tệp văn FTEXT kiểu tệp tệp
Lỗi 25. Invalid string length: Chiều dài xâu không hợp lệ Chiều dài hợp lệ nằm khoảng 255 Lời khuyên: Trong TP xâu x dùng phần tử x [0] chứa chiều dài x Không nên thay đổi tuỳ tiện giá trị x[0] Đoạn trình sau dù có lợi cho bạn không nên lạm dụng ( *Lấy ký tự đầu xâu x *) VAR x: string; BEGIN X: = 'abcdef'; x[0]:= chr(3); writeln (x); readel; END
Lỗi 26. TYPE mismatch: Kiểu không tương thích ngun nhân sinh lỗi là: - Biểu thức gán cho biến khơng kiểu Thí dụ VAR x: char; BEGIN x: = 127 * END - Truyền tham trị cụ thể không kiểu gọi thủ tục hàm Thí dụ FUNCTION F ( x: integer ): string; BEGIN Writeln (F ('ERROR')) ( * sinh lỗi 26 *) END - Sử dụng cần mạng sai kiểu4 - Dùng tốn hạng khơng kiểu biểu thức Thí dụ: x: = + chr ©;
Lỗi 27 Invalid subrange base type: Kiểu sở cho kiểu đoạn không hợp lệ Chỉ dùng biểu thức bậc hàm kiểu sở
Lỗi 28. Lower boundgreater than upper bound: Giới hạn lớn giới hạn Thí dụ a; ARRAY [5 -5] of
Lỗi 29. Ordinal type expected: Cần kiểu thứ bậc Trong trường hợp không dùng kiểu Real, string, Record, PROCEDURE pointer
Lỗi 30. Integer constant expected: Cần nguyên
Lỗi 31. Constant expected: Cần
Lỗi 32. Integer or rcal constant expected: Cần nguyên thực
Lỗi 33. Type identifier expected: Cần định danh kiểu
Lỗi 34. Invalid function resunt type: Kiểu kết hàm không hợp lệ Hàm cho kết thuộc kiểu đơn, string pointer Trường hợp sau lỗi: TYPE Phân số = RECORD Tử: integer; Mẫu: Integr END; FUNCTION Rút gọn ( x: phân số): phân số;
(4)Lỗi 36. BEGIN expected: Thiếu BEGIN
Lỗi 37. END expected: Thiếu END
Lỗi 38. Integer expression expexted: Cần biểu thức nguyên
Lỗi 39. Ordinal expression expected: Cần biểu thức thứ bậc
Lỗi 40. Boolean expression expected: Cần biểu thức kiểu BOOLEAN
Lỗi 41. Operand types not match operator: Kiểu tốn hạng khơng phù hợp với toán tử
Lỗi 42. Error in expression: Biểu thức sai Thường gặp trường hợp sử dụng ký tự lạ quên viết dấu phép toán biểu thức
Lỗi 43. Illegal assigment: Gans Gán không hợp lệ Không gán trị cho biến tệp biến không định kiểu Không gán trị cho định danh hàm ngồi thân hàm
Lỗi 44. Field identifier expected: Cần định danh thường Lỗi phát sinh sử dụng ghi (RECORD) khơng có trường hợp kèm
Lỗi 45. Object file too large: Tệp đích lớn TP ghép tệp kiểu OBJ lớn 64 KB (1kilo byte = 1024 bytes)
Lỗi 46. Undsfined external: Chưa khai báo hàm thủ tục Các hàm thủ tục cần khai báo mục PUBLIC tệp OBJ tệp hợp ngữ ASM Trong chế độ { $ L } cần liệt kê đầy đủ tên tệp OBJ
Lỗi 47 Invalid object file record: Tệp OBJ khơng có cấu trúc chuẩn mực theo quy định TP
Lỗi 48. Code segment too large: Đoạn mã lớn Các chương trình hợp thành phải có kích thước khơng q 65520 bytes
Lỗi 49. Data segment too large: Đoạn liệu lớn
Lỗi 50. Do expected: Thiếu Do cấu trúc FOR WHILE WITH
Lỗi 51. Invalid PUBLIC definition: Khai báo sai mục PUBLIC
Lỗi 52. Invalid EXTRN definition: Quá nhiều khai báo EXTRN TP không sử lý 256 khai báo EXTRN tệp OBJ
Lỗi 54 OF expected:Thiếu OF TYPE, CASE, FILE, SET, ARRAY
(5)Lỗi 56. Invalid relocatable reference: Tham chiếu không hợp lệ
Lỗi 57. THEN expected:Thiếu THEN IF
Lỗi 58. TO or DOWN TO expected: Thiếu To DOWN TO FOR
Lỗi 59. Undefined forward: chưa khai báo trước
Lỗi 60. Too many procedures: Quá nhiều thủ tục (hoặc hàm) TP cho phép tối đa 512 thủ tục (PROCEDURE) hàm (FUNCTION) module Nếu có nhiều bạn cần tách chương trình thành hai nhiều module
Lỗi 61. Invalid typecast: chuyển đổi kiểu không
Lỗi 62. Division by zero: chưa có
Lỗi 63. Invalid file type: Kiểu tệp không Mỗi kiểu tệp làm việc với số thủ tục dành riêng cho kiểu Thí dụ tệp TEXT làm việc voéi thủ tục readln, tệp định kiểu làm việc với thủ tục seek Nếu gọi thủ tục readln cho tệp định kiểu gọi thủ tục seek cho tệp text sinh lỗi 63
Lỗi 64. Can not Read or write vaziables of this type: Không thể đọc ghi biến thuộc kiểu Lưu ý - Read Readln đọc từ tệp vào biến kiểu char, integer, real, Boolean string
Lỗi 65. Pointer variable expected: Cần biến trỏ
Lỗi 66. String variable expected: Cần biến string
Lỗi 67. String expression expected; Cần biểu thức string
Lỗi 68. Unit not found: Khơng tìm thấy đơn thể (Unit) Cần khai báo chúng mục USES đặt đường dẫn mục OPTIONS môi trường TP
Lỗi 69. Unit name mismatch: Tên đơn thể không
Lỗi 70 Unit version mismatch: version đơn thể không phù hợp
Lỗi 71. Duplicate Unit name: Tên đơn thể trùgn lặp
Lỗi 72 Unit file format error: Tệp đơn thể (có TPU) khơng có dạng quy định
Lỗi 73 Implementation expected: Thiếu phần IMPLEMENTATION đơn thể
(6)Lỗi 75 Record variable expected: Cần biến kiểu RECORD
Lỗi 76. Constant out of range: Hằng vượt miền Lỗi gặp tình sau: - Chỉ dẫn mảng vượt giới hạn mảng - Gọi thủ tục hàm với tham trị cụ thể vượt giới hạn khai báo
Lỗi 77. File variable expected: Cần biến tệp
Lỗi 78 Pointer expression expected: Cần biểu thức kiểu trỏ
Lỗi 79. Integer or Real expssion expected: Cần biểu thức kiểu INTEGER REAL
Lỗi 80. Labelnot within current block: Nhãn khơng có khối xét
Lỗi 81. Label alrealy difined: Đã có nhãn
Lỗi 82. Undefined label in processing statement part: Không thấy nhãn hiệu đoạn xử lý Nhãn khai báo, thấy tốn tử GOTO có tham đối nhãn khơng thấy nhãn đoạn văn Mỗi nhãn cần xuất lần theo sơ đồ sau: LABEL L; (* *) (* *) L: FOR i:= TO GOTO L; (* *) Nếu nhãn L khơng có mặt (* *) sinh lỗi 82
Lỗi 83. Invalid @ argument: Dùng toán tử @ với tốn hạng khơng hợp lệ Tốn hạng hợp lệ cho @ định danh biến, thủ tục hàm
Lỗi 84. Unit expected: Cần có từ khố UNIT
Lỗi 85. ";" expected: Cần có dấu chấm phảy
Lỗi 86. ": " expected: Cần có dấu hai chấm
Lỗi 87 " , " expected: Cần có dấu phảy
Lỗi 88. " ( " expected: Cần có dấu mở ngoặc đơn Lỗi 89 " ) " expected: Cần có dấu đóng ngoặc đơn
Lỗi 89. " = " expected: Cần có dấu
Lỗi 91 ":= "expected: Cần dấu gán
Lỗi 92 " [ " or " ( " expected: Cần mở dấu ngoặc vuông khai báo định phần tử mảng, tập
Lỗi 93 " ] " or " ) " expected: Cần dấu đóng ngoặc vuông khai báo định phần tử mảng tập
(7)Lỗi 95 " " expected: Cần dấu nhiều chấm liệt kê giới hạn mảng, tập
Lỗi 96. Too many variables: Quá nhiều biến Nguyên nhân xuất lỗi là: - Tổng kích trước biến tồn cục vượt 64 KB - Tổng kích thước biến cục mô tả thủ tục hàm vựot 64 KB
Lỗi 97. Invalid FOR control variable: Biến điều khiển tốn tử FOR khơng Phải dùng biến kiểu liệt kê
Lỗi 98. Integer variable expected: Cần biến nguyên
Lỗi 99. Files are not allowed here: Không dùng tệp Hằng định kiểu tập
Lỗi 100. String length, mismatch: Chiều dài xâu không phù hợp với số lượng phần tử mảng ký tự
Lỗi 101. Invalid ordering of gields: Trật tự trường (trong ghi) không
Lỗi 102. String constant expected: Cần kiểu xâu
Lỗi 103 Integer or real variable expected: Cần biến nguyên thực (biến số)
Lỗi 104. Ordinal variable expected: Cần biến (kiểu) thứ tự
Lỗi 105. INLINE error: Lỗi sử dụng toán tử INLINE ( < ) Tốn tử khơng dùng với trỏ tới biến Các trỏ loại ln ln có kích thước từ
Lỗi 106. Character expressionexpected: Cần biểu thức kiểu ký tự
Lỗi 107. Too manyrebocation items: Quá nhiều phần tử động Kích thước bảng động cho tệp EXE vượt 64 KB
Lỗi 108. Not enough memory to run progam:Không đủ miền nhớ để thực chương trình
Lỗi 109. Can not find EXE file: Khơng tìm thấy tệp EXE
Lỗi 110. Can not run a Unit: Không phép thực modul Modul thư viện khai báo (biến, thủ tục, hàm) để ghép với chương trình sử dụng chúng không dùng để thực độc lập
Lỗi 111. Compilation abozted: Huỷ việc dịch (bằng lệnh ^ BREAK)
Lỗi 112. CASE constant out of range: Hằng tốn tửCASE khơng nằm giới hạn -32768 dến 32767
(8)Lỗi 114. Can not call an interrupt procedure: Không thể gọi thủ tục ngắt
Lỗi 115. Must have an 8087 to compile this: Cần có sử lý 8087 để dịch chương trình có khai báo chế độ dịch { $ N + }.hãy thử dùng tổ hợp { $ N +, E + }
Lỗi 116. Must be in8087 mode compile this: Phải dùng chế độ 8087 để dịch chương trình Không sử dụng kiểu SINGLE, DOUBLE, EXTENDEN, COMP chế độ { $ N - }
Lỗi 117. Target address not found: Khơng tìm thấy địa cho
Lỗi upload.123doc.net. Include files are not allwed here: Không dùng tệp hồng
Lỗi 119. TMP file format error: Lỗi khuân dạng tệp TMP Tệp có làTMP nội dung khơng dạng
Lỗi 120. NIL expected: Cần giá trị NIL
Lỗi 121. Invalid qualifier: Định dabnh khơng hợp lệ Có thể ngun nhân sau: - Viết biến đơn có kèm dẫn biến mảng - Viết biến đơn mảng theo trường biến ghi - Sử dụng biến không thuộc kiểu trỏ biến trỏ
Lỗi 122. Invalid variable reference: Tham chiếu không hợp lệ tới biến Bản thân biến khai báo kiểu trỏ nội dung khơng phải địa Thường gặp gọi hàm kiểu trỏ quên dùng ký hiệu ^
Lỗi 123. Too many symbols: Có nhiều ký hiệu Chương trình có tổng số ký hiệu lớn 64 KB Cần chia thành module nhỏ dịch chế độ { $ D + }
Lỗi 124. Statement part too large: Phần lệnh toán tử lớn Turbo Pascal dành khoảng 24 KB cho phần tốn tử Nếu phần q lớn nên cắt chúng thành nhiều thủ tục hàm Nói chung người lập trình tốt thường quan tâm đến tổ chức cấu trúc
Lỗi 125. Module has no debug information: Trong module khơng có thơng tin bắt lỗi thực chương trình dịch mà gặp lỗi Turbo bascal khơng tốn tử sinh lỗi Nên dịch lại chương trình theo chế độ { $ D +} sử dụng mục COMPILER/FIND ERROR để tìm lỗi
Lỗi 126. Files must be var parameters: Tham biến hình thức kiểu tệp thủ tục hàm phải khai báo theo chế độ truyền theo biến (có tiếp đầu VAR)
Lỗi 127. Too many conditional symbols: Không đủ miền nhớ để xác định ký hiệu điều kiện Thử bỏ bớt số ký hiệu giảm chiều dài chúng
Lỗi 128. Misplaced conditional directive: Thiếu khai báo điều kiện, chanửg hạn chương trình có { $ ELSE }hoặc {$ ENDIF} lại khơng có { $ IFDEF }, {$IFNDEF }
(9)Lỗi 129. ENDIF directive missing: Thiếu khai báo Ơ $ENDIF}
Lỗi 130. Error in inital conditonal defines: Định nghĩa điều kiện sai Các điều kiện ban đầu đặt OPTIONS/COMPILER/CONDITIONAL DEFILES không Nếu viết nhiều điều kiện cần ngăn chúng dấu chấm phảy
Lỗi 131. Header does not match previous definitio: Phần đầu không phù hợp với khai báo trước Có thể nguyên nhân sau: - Đầu thủ tục hàm phần INTERFACE phần
IMPLEMENTATION không phù hợp với - Đầu thủ tục hàm khai báo trước (bằng từ thị FORWARD) không phù hợp với phần mô tả
Lỗi 132. Criticaldisk error: Lỗi nặng đĩa, thí dụ ổ đĩa chưa đóng chưa lắp đĩa
Lỗi 133. Can not evaluate this expression: tính gí trị biểu thức, thí dụ CONTS C = SIN (2); sinh lỗi khai báo dùng hàm SIN
Lỗi 134. Exprsseion incorrectly terminated: Biểu thức kết thúc sai
Lỗi 135. Invalid format specifier: Dạng thức đặt tả sai
Lỗi 136. Invalid inderect reference: Không sử dụng phương thức truy nhập trực tiếp
Lỗi 137. Structured variable arenot allowed here: Không dùng biến cấu trúc Lỗi phát sinh lập trình viên thực phép tốn khơng phép dùng cho biến cấu trúc, thí dụ nhân hai ghi
Lỗi 138. Can not evaluate withut system unit: Cấm tính tốn biểu thức chưa gọi module SYSTEM Muốn làm điều ta phải đưa module SYSTEM vào tệp TURBO.TPL
Lỗi 139. Can not access this symbol: Không truy nhập tới ký hiệu
Lỗi 140. Invalid floating-point operation: Sử dụng sai thao tác với số thực Có thể xảy tượng tràn ô nhớ (kết tính tốn vượt q khả biểu diễn nhớ) phép chia cho số
Lỗi 141. Can not compile overlay to memory: Không thể dịch overlay miền nhớ RAM (mà phải đặt chế độ dịch đĩa (Disk))
Lỗi 142. Procedure or function variable expected: Cần sử dụng biến dạng thủ tục hàm Tham biến hình thức thủ tục hàm thủ tục hàm
Lỗi thực (của turbo pascal 5.x) Dạng thông báo Runtime error nnn at xxxx:yyyy Số hiệu lỗi
Địa nơi sinh lỗi:
(10)Các lỗi có số liệu từ 200 255 nỗi nặng
Lỗi vào - Khi gặp lỗi phép toán (toán tử) vào dịch chế độ { $I+} chương trình bị dừng Ngược lại đặt thị {$I-}thì chương trình tiếp tục thực sau gửi số hiệu lỗi (ta gọi mã lỗi) vào biến IORESUT (đây thực chất hàm)
Có thể phân loại lỗi mịn sau:
Mã lỗi 199 DOS Mã lỗi 100 149 lỗi vào
Mã lỗi 150 199 lỗi nặng Mã lỗi 200 255 lỗi nặng Chú ý: ngầm định chương trình ln ln dịch chế độ {$I+} Sau lần thực toán tử vào - IORESULT = chứng tỏ toán tử thực trọn vẹn, không sinh lỗi, ngược lại IORESLT ¹ chứng tỏ tốn tử khơng thực trọn vẹn, có lỗi
Thí dụ sau minh hoạ thủ tục bẫy lỗi để biết thực trạng chương trình
Thí dụ 1: nhận tên tệp đưa vào biến tên tệp sau cho biết tệp có tên cho có tồn thư mục có đĩa hay khơng Ta biết lệnh Reset(f) tìm mở tệp f đĩa Nếu khơng tìm tệp với tên cho hệ thống thơng báo lỗi IORESULT có giá trị (mã lỗi) khác Như vậy, IORESULT = cho biết tệp có tồn Ta có chương trình tìm tệp sau đây: (* Chương trình tìm tệp.Pas *)
PROGRAM Timtep; USES dos, crt;
VAR Tentep: string; f: File; BEGIN
Write ('cho biết tên tệp cần tìm: '); Readln (tentep); Assign (f, tentep);
{#I-} Reset (f); {$I+}
IF IORESULT <> THEN
Writeln ('khong thay tep', tentep) ELSE
Writeln (' co tep', ten tep); Readln
END
Ta có mẫu chung để bẫy lỗi vào - sau
Giả sử ta cần thực thao tác vào - P Sau bước chuẩn bị ta viết đoạn chương trình sau:
{$I-} (* bỏ chế độ bắt lỗi *) P; (* thực thao tác vào - ra*) {$I+} (* đặt lại chế độ bắt lỗi *)
IF IORESULT = THEN (* thao tác P thực tốt *)
ELSE (* có lỗi thực P *)
Sau mã lỗi nghĩa lỗi:
(11)3 Path not found: Không thấy đường dẫn Lỗi xuất khi: - Các thủ tục RESET, APPEND, RENAME ERASE không tìm đường dẫn tới tệp cần thao tác - Các thủ tục CHDIR, MKDIR, RMDIR nhận tham trị sai thư mục đường dẫn tới thư mục cần sử lý
4 Too many open files: mở nhiều tệp Xuất gọi thủ tục RESET, REWRITE,hoặc APPEND Để tăng số lượng tệp cần mở sửa thêm dòng FILES = xx Trong tệp CONFIG.SYS khởi động lại máy.xx khối lượng tối đa tệp cần mở, thí dụ 20
5 File access denied: Không phép truy nhập tệp Lỗi xuất khi: Các thủ tục RESET APPEND nhận tham biến tệp chế độ đọc tham biến FILEMODE lại phép ghi - Gọi thủ tục REWRITE thư mục đầy tham biến tệp khai báo chế độ đọc
- Gọi thủ tục RENAME với tên tệp tên thư mục tên tệp có thư mục
- Gọi thủ tục ERASE với tên tệp tên thư mục tham chiếu tới tệp đọc - Gọi thủ tục MKDIR với tên thư mục có tên thư mục đầy
- Gọi thủ tục RMDIR với thư mục chưa rỗng sai đường dẫn - Gọi thủ tục READ BLOCKREAD chưa mở tệp
- Gọi thủ tục WRITE BLOCKWRITE chưa mở tệp để ghi Invalid file handle: Kênh cho tệp chưa thông
12.Invalid file access code: Mã truy nhập tệp bị sai Lỗi xuất gọi thủ tục RESET APPEND với tham biến FILEMODE chứa giá trị không chuẩn
15 Invalid drive number: Số hiệu ổ đĩa bị sai Xuất gọi GETDIR
16 Can not remove current directory: Khơng xố thư mục hành Xuất gọi RMDIR với thư mục mở
17 Cannot renameacross drives: Không đổi tên với hai ổ đĩa khác Xuất gọi RENAME với hai tệp nằm hai ổ đĩa khác
100 Disk read error: Lỗi đọc đĩa Xuất gọi READ từ tệp định kiểu để đọc tệp duyệt hết
101 Disk write error: Lỗi viết vào đĩa Xuất gọi close, write, writel flush với đĩa đầy 102 File not assigned: Chưa gán tên cho tệp thủ tục ASSIGN mà gọi thủ tục RESET, REWRITE, APPEND, RENAME ERASE
103 File not open: Tệp chưa mở Xuất gọi close, rean, write, seek, eof, fileposfilesize, flush, blockread, blockwrite với tệp chưa mở
104 File not open for input: Tệp chưa mở để đọc Xuất gọi READ, READLN, EOF, EOLN SEEKEOF, SEEKEOLN với tệp văn (kiểu text) chưa mở để đọc
105 File not open for output: Tệp chưa mở để ghi Xuất gọi WRITE WRITEL với tệp văn chưa mở để ghi
106 Invalid numeric format: Dạng số sai Xuất gọi READ READLN số từ tệp văn
150 Disk is write protected: Đĩa chống ghi Lỗ chống ghi đĩa bị che kín 151 Unknown unit: Module lạ
152 Drive not ready: ổ đĩa chưa sẵn sàng 153 Unknown command: Lệnh lạ
154 ARC error in data (Cycle Redundant Code -): Lỗi liệu ban đầu 155 Bad drive requiest structure legth: Chiều dài cấu trúc đĩa không 156 Disk seek error: Đầu - đọc ghi chỗ đĩa bị đặt sai
(12)158 Sector not found: Không tìm Sector đĩa 159 Printer out of paper: hết giấy in máy in
160 Device write fault: Lỗi dùng thiết bị ghi 161 Device read fault: lỗi dùng thiết bị đọc 162 Hardware failure: Có cố phần cứng
2 Các lỗi nặng:
200 Division by zero: chia cho số
201 Range chek error: Lỗi kiểm tra giới hạn
202 Stack overflow error: Ngăn xếp đầy.Khi chương trình thực cần có vùng nhớ để tổ chức biến động gọi thủ tục hàm Vùng nhớ tổ chức theo nguyên tắc ngăn xếp
Nếu thiểu chỗ sinh lỗi 202 203 heap overflow error: Chùm đầu Khi chương trình thực cần cấp phát vùng nhớ động cho thủ tục new getmem Các vùng nhớ quản lý theo nguyên tắc chùm (như rễ cây)
Nếu thiếu chỗ sinh lỗi 203 204 Invalid pointer operation: Thao tác trỏ không Lỗi xuất gọi DISPOSE FREEMEM với giá trị NIL với địa nằm giới hạn dành cho phần nhớ thao tác
205 Floating point overflow: Toàn giá trị thực (real)
206 Floating point underflow: Lệch hãng giá trị thực (Real) Lỗi xuất sử dụng đồng xử lý loại 8087/80287/80387 207 Invalid floatingpoint operation: Thao tác sai với giá trị thực (Real) Lỗi xuất trường hợp:
- Tham trị hàm TRUNC ROUND biến đổi phạm vi kiểu LONGINT (từ -2147483648 đến +2147483647)
- hàm lấy bậc SQRT có tham trị âm - Hàm logarit LN chứa tham trị không dương - Ngăn xếp đồng xử lý bị tràn
208 Overlay manager not installed: Chưa đặt phần hệ điều khiển Overlay Thường thiếu thủ tục OVRINIT (khởi tạo - đặt chế độ Overlay) thủ tục không thực đầy đủ