Xem mẫu
- 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
- [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
- 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
- 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
- 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
- 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
- É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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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