PASCAL ERRORS

15
1 TURBO PASCAL ERRORS CODES (CÁC MÃ LI CA TURBO PASCAL) Dch và chú gii tTurbo Pascal 6: The Complete ReferenceVương Đức Bình Lời người dch: Đối vi người mi hc lp trình, viết chương trình bli là chuyn “thường ngày huyn”. Mi ngôn ngđều dtrù hng trăm, nếu không nói là hàng ngàn, thông báo li khác nhau như mt strgiúp để chúng ta khc phc li đó. Mt sthông báo li thì đơn gin, rõ ràng nhưng mt sthông báo li có thdn nhng lp trình viên “mi chp chng” vào mt trò chơi trn tìm rt đau đầu đến ni có khi chính strgiúp này li gây ra vn đề còn ln hơn cbn thân li. Vì lđó đọc hiu được các thông báo li và tđó suy ra cách khc phc li cũng là mt yêu cu quan trng trong quá trình hc lp trình. Mt khác, thc tế đa ssinh viên CNTT trong năm đầu thường không đủ vn tvng vthut ngtin hc, cng vi syếu kém vging dy ngoi ngthâm căn cđế do các trường PTTH gây ra làm cho sinh viên không đủ năng lc đọc hiu các thông báo li trc tiếp bng tiếng Anh. Tài liu này chmong làm được có mt vic: giúp các bn sinh viên đó tiếp cn dhơn vi vic đọc hiu thông báo li. Nhưng các bn cũng đừng li vào tài liu này. Tt hơn hết các bn nên tp làm quen dn vi vic đọc trc tiếp, suy nghĩ trc tiếp bng tiếng Anh. Tiếng Vit thì đẹp đẻ và là ngôn ngca cha ông mà chúng ta cn trân quí và làm cho nó phát trin. Nhưng đây là khoa hc kthut, bn cn xây dng khnăng tiếp cn tht nhanh thông tin khoa hc kthut. Để các bn dtham kho/so sánh tôi strình bày bn dch này dưới dng song ng. Tôi không hoàn toàn ginguyên gc so vi nguyên bn mà có thêm ít nhiu chú thích và thêm phn nguyên nhân phát sinh ra li và cách khc phc. Mt sli skhông có phn này (cách khc phc) vì có thtôi chưa gp li đó bao gi… cho nên tôi không có kinh nghim khc phc. Nếu bn biết, xin thông báo cho tôi trên forum ca Tbmôn CNTT http://tobomoncntt.freeforums.org/, tôi srt cm ơn và tôi sbsung vào đây khi có th. I. Compiler Error Messages (Các thông báo li trong quá trình biên dch) 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 li trong quá trình biên dch liên quan đến nhng vn đề trong mã chương trình hoc môi trường lp trình gây cn ngi cho Turbo Pascal khi to ra file thc thi. Trong môi trường phát trin tích hp, Turbo Pascal scgng định vtrí li trong mã ngun. Lưu ý của người dch: a) Nếu bn sdng IDE (integrated development environment) thông thường vtrí phát sinh ra li trong mã ngun nm ngay trước vtrí con trvăn bản. Còn nếu bn dch mã ngun FILENAME.PAS bng TPC.EXE (Turbo Pascal Compiler) theo cú pháp

Transcript of PASCAL ERRORS

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

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