Tải bản đầy đủ (.pdf) (15 trang)

Các lỗi thường gặp trong Turbo Pascal pdf

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (455.29 KB, 15 trang )


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 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

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
1 Out of memory
Không đủ vùng nhớ
1. Mã chương trình quá
lớn.
2. Mã dữ liệu quá lớn.
3. Bị virus.
4. Các chương trình
thường trú chiếm bớt
vùng nhớ qui ước
(conventional
memory).
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ó
đang chiếm mất vùng nhớ
hoặc phải sử dụng biện pháp
overlay. Thông thường điều
này chỉ xảy ra trong môi
trường thực (Real mode).
Nếu bạn chạy Borland Pascal
trong môi trường giả lập
được bảo vệ (protected
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)
2 Identifier expected
Chờ một danh biểu


3 Unknown identifier
Không biết danh biểu này
1. Quên khai báo biến.
2. Gõ sai tên biến trong
chương trình.
3. Gọi tới biến, danh biểu
này ở ngoài tầm vực
của nó.
1. Khai báo danh biểu này.
2. Sửa chữa lỗi gõ sai.
3. Xem xét lại tầm vực của

danh biểu.

3
4 Duplicate identifier
Danh biểu bị trùng lặp
1. Tên biến trùng với tên
chương trình.
2. Khai báo lại tên biến
với kiểu dữ liệu khác
trong cùng một khối.
1. Đặt lại tên biến hoặc tên
chương trình.
5 Syntax error
Lỗi cú pháp

Sửa lỗi cú pháp
6 Error in real constant
Lối về hằng số thực


7 Error in integer constant
Lỗi về hằng số nguyên


8 String constant exceeds line
Chuỗi dài quá một dòng
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
dấu nháy kết thúc chuỗi

trong câu lệnh WRITE
hoặc WRITELN.
Bổ sung dấu nháy đằng sau
chuỗi.
9 Too many nested files
Quá nhiều file lồng nhau


10 Unexpected end of file
Không tìm thấy kết thúc file
Quên từ khóa “END.”
Thông thường do lập trình
viên quên hoặc dùng “END;”
ở cuối chương trình chính.
11 Line too long
Dòng quá dài
Câu lệnh viết dài quá cột
128.
Ngắt câu lệnh thành nhiều
dòng.
12 Type identifier expected
Không thấy kiểu của danh
biểu
Quên khai báo kiểu của
biến.

13 Too many open files
Mở quá nhiều file cùng lúc

Mở file C:\CONFIG.SYS

sửa lại dòng lệnh
Files=<số>. 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
<số> cho thích hợp với
chương trình đang viết. Mặc
định <số> 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.

4
14 Invalid filename
Tên file không hợp lệ.
Không tìm thấy thư mục
đã định nghĩa trong
[Options >Directories ]
để lưu file này
Thư mục để lưu file này
bị xác lập thuộc tính
Hidden hoặc Read Only
Khai báo lại thư mục hoặc
xác định thư mục có thuộc
tính Archive, bỏ thuộc tính
hidden, bỏ thuộc tính read
only.
15 File not found
Không tìm thấy file


Xem lại đường dẫn tới tên
file
16 Disk full
Đĩa bị đầy

Xóa bớt các file không cần
thiết trên đĩa để lấy thêm chổ
trống cho thao tác trên đĩa.
17 Invalid compiler directive
Dẫn hướng biên dịch không
hợp lệ
Dùng một dẫn hướng
biên dịch không có trong
qui định
Xem lại khai báo dẫn hướng
biên dịch. Gõ CTRL-O-O để
xem các dẫn hướng biên dịch
được Pascal hỗ trợ mặc định.
18 Too many files
Có quá nhiều file


19 Undefined type in pointer
definition
Định nghĩa con trỏ trỏ tới
một kiểu chưa được định
nghĩa

Xem lại định nghĩa kiểu sau

từ khóa TYPE / Xem lại tên
kiểu coi có gõ nhầm không.
20 Variable identifier expected
Yêu cầu danh biểu là biến
Thông thường là do
truyền trị cho tham biến
Chỉ được phép truyền biến
cho tham biến mà thôi.
21 Error in type
Lỗi về kiểu dữ liệu

Xem lại kiểu dữ liệu qui định
ở vị trí này.
22 Structure too large
Cấu trúc quá lớn


23 Set base type out of range
Kiểu cơ sở bị vượt quá phạm
vi dữ liệu


24 File components may not be
files or objects
Không cho phép thành phần
của file là file hoặc đối tượng


25 Invalid string length
Chiều dài chuỗi không hợp lệ



26 Type mismatch
Không khớp kiểu dữ liệu
Hai vế của phép gán
không thuộc về cùng một
kiểu dữ liệu
Hoặc khai báo lại kiểu dữ
liệu cho phù hợp hoặc phải
dùng biện pháp ép kiểu (type
casting).
27 Invalid subrange base type
Phạm vi không khớp với
phạm vi của kiểu cơ sở



5
28 Lower bound greater than upper
bound
Cận dưới lớn hơn cận trên

Khai báo lại
29 Ordinal type expected
Yêu cầu kiểu dữ liệu có thứ
tự

Sử dụng kiểu dữ liệu có thứ
tự (kiểu đếm được)
30 Integer constant expected.

Yêu cầu hằng số nguyên


31 Constant expected
Yêu cầu hằng số


32 Integer or real constant
expected.
Yêu cầu hằng số nguyên
hoặc hằng số thực


33 Type identifier expected
Không thấy định nghĩa kiểu

Khai báo kiểu
34 Invalid function result type
Kiểu dữ liệu trả về của hàm
không hợp lệ
Kiểu dữ liệu trả về của
hàm không phải là kiểu
đơn giản, chuẩn
Khai báo lại kiểu dữ liệu trả
về.
35 Label identifier expected
Yêu cầu danh biểu là một
nhãn
Quên khai báo LABEL
trước khi dùng câu lệnh

GOTO

36 Begin expected
Không thấy BEGIN
Thông thường lỗi này là
do lập trình viên gõ sai
các từ khóa trước BEGIN
của chương trình chính
nên trình biên dịch hiểu
nhầm đã bắt đầu câu lệnh
mà không có BEGIN.
Kiểm tra lỗi gõ sai các từ
khóa, các khai báo trước
BEGIN của chương trình
chính.
37 End expected
Không thấy END
Thiếu từ khóa END
tương ứng của BEGIN
hoặc của khai báo
RECORD hoặc của cấu
trúc CASE

38 Integer expression expected
Chờ một biểu thức nguyên


39 Ordinal expression expected
Chờ một biểu thức thứ tự



40 Boolean expression expected
Chờ một biểu thức logic


41 Operand types do not match
operator
Toán hạng không phù hợp
với toán tử

Xem xét lại biểu thức xảy ra
lỗi.
42 Error in expression
Có lỗi trong biểu thức


43 Illegal assignment
Phép gán bất hợp lệ


44 Field identifier expected
Chờ một danh biểu trường


45 Object file too large
File đối tượng quá lớn



6

46 Undefined external
Chưa định nghĩa External
Sử dụng/gọi một thủ tục
biên dịch sẳn dạng
thức .BIN nhưng chưa
khai báo thủ tục này là
EXTERNAL
Khai báo thủ tục hoặc hàm
EXTERNAL.
47 Invalid object-file record
Bản ghi của đối tượng file
không đúng


48 Code segment too large
Đoạn mã chương trình quá
lớn


49 Data segment too large
Đoạn mã dữ liệu quá lớn


50 Do expected
Chờ DO
Viết thiếu từ khóa DO
sau câu lệnh FOR hoặc
WHILE

51 Invalid public definition

Định nghĩa public không
đúng


52 Invalid Extern definition
Định nghĩa External không
đúng


53 Too many Extern definitions
Quá nhiều định nghĩa
External


54 Of expected
Chờ OF
Viết thiếu từ khóa OF
trong câu lệnh CASE

55 Interface expected
Chờ INTERFACE
Viết thiếu từ khóa
INTERFACE trong cấu
trúc của UNIT.

56 Invalid relocatable reference
Liên hệ tái định vị không
đúng.



57 Then expected
Chờ THEN
Viết thiếu từ khóa THEN
trong câu lệnh IF

58 To or Downto expected
Chờ TO hoặc DOWNTO
Viết thiếu từ khóa
TO/DOWNTO trong câu
lệnh FOR

59 Undefined forward
Chưa định nghĩa
FORWARD
Các thủ tục gọi lẫn nhau
nhưng quên khai báo
FORWARD. Thường
xảy ra trong trường hợp
đệ qui hỗ tương.
Phải khai báo FORWARD
cho tất cả thủ tục, hàm có gọi
lẫn nhau.
60 Too many procedures
Quá nhiều PROCEDURE



7
61 Invalid typecast
Ép kiểu không đúng



62 Division by zero
Chia cho số 0
1. Thực hiện một phép
chia cho 0 trong biểu
thức.
2. Unit CRT bị lỗi do tốc
độ bộ xử lí lớn hơn
300 MHz. (Từ các đời
máy 80846 trở đi)
1. Xem lại biểu thức.
2. Cập nhật file
TURBO.TPL (Trong
hướng dẫn sửa lỗi khi cài
đặt TURBO PASSCAL)
63 Invalid file type
Kiểu file không đúng


64 Cannot read or write variables
of this type
Không thể đọc hoặc ghi biến
thuộc kiểu dữ liệu này
Thông thường là do
muốn đọc hoặc ghi trực
tiếp dữ liệu kiểu Boolean
Đọc/Ghi gián tiếp cho kiểu
dữ liệu này.
65 Pointer variable expected

Chờ biến kiểu con trỏ


66 String variable expected
Chờ biến kiểu chuỗi


67 String expression expected
Chờ biểu thức chuỗi


68 Circular unit reference
Liên hệ Unit lòng vòng
Các Unit gọi lẫn nhau.

69 Unit name mismatch
Tên Unit không khớp


70 Unit version mismatch
Phiên bản Unit không khớp


71 Duplicate unit name
Trùng lặp tên Unit


72 Unit file format error
Lỗi trong dạng thức file Unit



73 Implementation expected
Chờ IMPLEMENTATION
Viết thiếu từ khóa
IMPLEMENTATION
trong cấu trúc của UNIT.

74 Constant and case types do not
match
Hằng và kiểu giá trị hằng
không khớp.


75 Record variable expected
Chờ đợi biến kiểu bản ghi


76 Constant out of range
Hằng vượt quá phạm vi


77 File variable expected
Chờ biến kiểu File


78 Pointer expression expected
Chờ biểu thức kiểu con trỏ


79 Integer or real expression

expected
Chờ biểu thức nguyên hoặc
thực


80 Label not within current block
Nhãn không thuộc về block
hiện tại

Xem lại vị trí định nghĩa
nhãn hoặc xem lại tầm vực
của nhãn.
81 Label already defined
Nhãn này đã được định nghĩa
rồi



8
82 Undefined label in preceding
statement part
Nhãn chưa được định nghĩa
trong phần phát biểu trước


83 Invalid @ argument
Sử dụng sai đối số @


84 Unit expected

Chờ đợi Unit


85 “;” expected
Chờ đợi “;”
Đây là những lỗi khá phổ
biến. Thông thường là do
gõ sai hoặc gõ sót các
token “;”,….
Thêm “;”
86 “:” expected
Chờ đợi “:”
Thêm “:”
87 “,” expected
Chờ đợi “,”
Thêm “,”
88 “(“ expected
Chờ đợi “(“
Thêm “(“
89 “)” expected
Chờ đợi “)”
Thêm “)”
90 “=” expected
Chờ đợi “=”
Thêm “=”
91 “:=” expected
Chờ đợi “:=”
Thêm “:=”
92 “[“ or “(.” expected
Chờ đợi “[“ hoặc “(.”

Thêm “[“ hoặc “(.”
93 “]” or “.)” expected
Chờ đợi “]” hoặc “.)”
Thêm “]” hoặc “.)”
94 “.” expected
Chờ đợi “.”
Thêm “.”
95 “ ” expected
Chờ đợi “ ”
Thêm “ ”
96 Too many variables
Quá nhiều biến

Giảm bớt số biến đã khai
báo. Thông thường nên tăng
cường sử dụng biến cục bộ
thay cho biến toàn cục
97 Invalid For control variable
Biến điều khiển vòng lặp
FOR không thích hợp
Đã dùng biến điều khiển
vòng lặp thuộc kiểu
không có thứ tự
Thay đổi kiểu của biến điều
khiển vòng lặp FOR.
98 Integer variable expected
Chờ một biến kiểu số nguyên


99 Files are not allowed here

Không cho phép dùng File ở
đây


100 String length mismatch
Chiều dài của chuỗi không
khớp


101 Invalid ordering of fields
Thứ tự các field không đúng


102 String constant expected
Chờ đợi một hằng chuỗi


103 Integer or real variable expected
Chờ đợi biến nguyên hoặc
thực


104 Ordinal variable expected
Chờ đợi biến thứ tự


105 Inline error
Lỗi INLINE
Chèn mã assembly trực
tiếp vào chương trình

nguồn gây ra lỗi.
Xem lại các đoạn mã
assembly. Đảm bảo đúng cú
pháp của Microsoft
Assembly.
106 Character expression expected
Chờ đợi biểu thức kí tự



9
107 Too many relocation items
Quá nhiều mục tái định vị


108



109



110



111




112 Case constant out of range
Hằng trị trong câu lệnh
CASE vượt quá phạm vi


113 Error in statement
Sai lầm trong câu lệnh


114 Cannot call an interrupt
procedure
Không gọi được thủ tục ngắt


115



116 Must be in 8087 mode to
compile this
Cần bộ xử lí dấu chấm động
8087 để biên dịch phần này

- Lỗi này không xảy ra nữa
kể từ thế hệ máy 80386 DX.
- Trong menu [Options >
Compiler] đánh dấu kiểm
vào ô 8087/80287.
117 Target address not found

Không tìm thấy địa chỉ mục
tiêu


118 Include files are not allowed
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
















×