CáclỗitrongPascal
COMPILEERROR
Lỗi1.Outofmemory:vượtrangoàimiềnnhớ.Chươngtrìnhdịchthiếumiềnnhớ.
Vàigợiýkhắcphục:
a. Nếu mục Compile/Destination (nơi đặt chương trình đích, tức là chương trình đã được dịch ghi trong
tệp cùng tên với chương trình nguồn nhưng có phần mở rộng là .EXE) đang đặt là Memory hãy đổi thành
DiskbằngcáchbấmphímEnter.
b.NếumụcOptions/Compiler/LinkđangđặtlàMemoryhãyđổithànhDiskbằngcáchbấmphímEnter.
c.Bỏbớtcácchươngtrìnhthườngtrú.
d.ThửrakhỏiTURBO.EXE,dịchlạichươngtrìnhcủabạnvớilệnhTCPnhưsau:
TCP<chươngtrìnhcủabạn>
ChươngtrìnhdịchTCPnàychiếmítmiềnnhớhơn.
Nếu cả 4 biện pháp nói trên đều không mang lại kết quả, tức là chương trình của bạn quá lớn. Hãy chia nó
thànhcácđơnthểnhỏhơn.
Lỗi2.Identifierexpected:monggặpđịnhdanh.
Lỗi3.Unknownidentifier:địnhdanhchưađượckhaibáo.
Hãykhaibáođịnhdanhnàyởđầuthủtụchoặcchươngtrình.
Lỗi4.Duplicateidentifier:địnhdanhđượckhaibáo2lầntrởlên.
Lỗi5.Syntaxerror:Lỗicúpháp.Gặpmộtkýtựsaihoặcviếtsaimộthằng.
Lỗi6.Errorinrealconstant:Viếtsaihằngthực.
Lỗi7.Errorinintegerconstant:Viếtsaihằngnguyên.
Chú ý rằng khai báo CONST c = 1234 sẽ cho ta một hằng c kiểu nguyên. Muốn có một hằng kiểu thực, ta
viết CONST c = 1234.0. Những hằng có giá trị nằm ngoài khoảng 2147483648 2147483647 cần được
khaibáotheokiểuthực,thídụ:CONSTc=12345678912.0;
Lỗi8.Stringconstantexceedsline:giátrịcủaxâukýtựquádài.
Xemlạicóthiếudấuđóng/mở(dấunháyđơn)hằngvănbảnkhông?
Lỗi9.Toomanynestedfiles:quánhiềutệplồngnhau.
Chươngtrìnhdịchchophéplồngnhaukhôngquá5tệp.
Lỗi10.Unexpectedendoffile:Cầngặpdấukếttệp.
Lỗi10cóthểxuấthiệntrongcáctrườnghợpsau:
TrongchươngtrìnhcáccặpBEGINvàENDkhôngcânđối.
Lỗi18.Toomanyfiles:Quánhiềutệp.
Chươngtrìnhđòihỏiquánhiềutệp.Sựđòihỏitháiquánàycóthểphátsinhracácnguyênnhânsau:
Đặtnhiềuchếđộkhiếnchươngtrìnhdịchphảimởnhiềutệp.
Cácmodulegọimócnối,liênhoàn,mỗimodulelạiđòihỏimộtsốtệp.
Lời khuyên: Ngay từ đầu hãy chọn cấu hình tối thiểu cho chương trình. Cần có một danh sách các kiểu,
biếnvàcáctệptổngthểmàchươngtrìnhgọitới.
Lỗi19.Undefinedtypeinpointerdefinition:Kiểuchưađịnhnghĩakhiđịnhnghĩacontrỏ.
Thídụ,khaibáo:VarP:^ptype;
Nếutrướcđótachưađịnhnghĩakiểuptypethìsẽsinhlỗi19.
Lỗi20.Variableidentifierexpected:Cầnmộtđịnhdanhchobiến.
Thídụ:FOR=4TO20DO{ }sẽsinhlỗi20.
Lỗi21.Errorintype:Lỗivềkiểu.
Thídụ:TYPE*=3 7;
Lỗi22.Structuretoolarge:Kiểucấutrúccókíchthướcquálớn.
CỡtốiđacủacấutrúctrongTPlà65520byte.
Lỗi23.Setbasetypeofrange:Kiểutậpcơsởvượtquágiớihạn.
Giới hạn của kiểu đoạn dùng làm tập cơ sở là 0 255, giới hạn của kiểu liệt kê dùng làm tập cơ sở là 256
phầntử.
Thídụ,khaibáosauđâysẽsinhlỗi23:VarS:setof8 300;
Lỗi24.Filecomponentsmaynotbefiles:Thànhphầncủatệpkhôngthểlàtệp.
Thídụ,khaibáoTypeFText=FILEOFTEXT;.
Lỗi24vìTEXTlàkiểutệpvănbảnchonênFTextsẽlàkiểutệpcủatệp.
Lỗi25.Invalidstringlength:Chiềudàixâukhônghợplệ.
Chiềudàihợplệnằmtrongkhoảng0 255.
Lời khuyên: Trong TP mỗi xâu x dùng phần tử x[0] chứa chiều dài của x. Không nên thay đổi tuỳ tiện giá
trịcủax[0].Đoạnchươngtrìnhsauđâydùcólợichobạncũngkhôngbaogiờnênlạmdụng:
(*Lấy3kýtựđầucủaxâux,TurboPascal*)
VARx:string;
BEGIN
x:='abcdef';
TYPEPhanSo=RECORD
Tu,Mau:integer;
END;
FUNCTIONRutGon(x:PhanSo):PhanSo;
Lỗi35.Labelidentifierexpected:Cầnchọnnhãn.
Lờikhuyên:TốtnhấtlànêntránhdùngGotovàdođóbạnkhôngphảidùngđếnnhãn.
Lỗi36.BEGINexpected:ThiếuBEGIN.
Lỗi37.ENDexpected:ThiếuEND.
Lỗi38.Integerexpressionexpexted:Cầnbiểuthứcnguyên.
Lỗi39.Ordinalexpressionexpected:Cầnbiểuthứcthứbậc.
Lỗi40.Booleanexpressionexpected:CầnbiểuthứckiểuBOOLEAN.
Lỗi41.Operandtypesdonotmatchoperator:Kiểutoánhạngkhôngphùhợpvớitoántử.
Lỗi42.Errorinexpression:Biểuthứcsai.
Thườnggặptrườnghợpsửdụngkýtựlạhoặcquênviếtdấuphéptoántrongbiểuthức.
Lỗi43.Illegalassigment:Gánkhônghợplệ.
Khôngđượcgángiátrịchobiếntệphoặcbiếnkhôngđịnhkiểu.
Khôngđượcgángiátrịchođịnhdanhhàmởngoàithâncủahàmđó.
Lỗi44.Fieldidentifierexpected:Cầnmộtđịnhdanhthường.
Lỗiphátsinhkhisửdụngbảnghi(RECORD)khôngcótrườnghợpđikèm.
Lỗi45.Objectfiletoolarge:Tệpđíchquálớn.
TPkhôngthểghépcáctệpkiểuOBJlớnhơn64KB.
Lỗi46.Undsfinedexternal:Chưakhaibáocáchàmhoặcthủtụcngoài.
Các hàm hoặc thủ tục ngoài cần được khai báo ở mục PUBLIC trong các tệp OBJ hoặc trong các tệp
hợpngữASM.Trongchếđộ{$L }cầnliệtkêđầyđủtêncáctệpOBJ.
Lỗi47.Invalidobjectfilerecord:TệpOBJkhôngcócấutrúcchuẩnmựctheoquyđịnhcủaTP.
Lỗi48.Codesegmenttoolarge:Đoạnmãquálớn.
Cácchươngtrìnhhợpthànhphảicókíchthướckhôngquá65520bytes.
Lỗi49.Datasegmenttoolarge:Đoạndữliệuquálớn.
Lỗi50.Doexpected:ThiếuDotrongcáccấutrúcForhoặcWhilehoặcWith.
Lỗi51.InvalidPUBLICdefinition:KhaibáosaitrongmụcPUBLIC
vớinhau.
Lỗi75.Recordvariableexpected:CầnmộtbiếnkiểuRECORD.
Lỗi76.Constantoutofrange:Hằngvượtquámiền.
Lỗicóthểgặptrongcáctìnhhuốngsau:
Chỉdẫnmảngvượtrangoàigiớihạncủamảng.
Gọithủtụcvàhàmvớicácthamtrịcụthểvượtrangoàigiớihạnđãkhaibáo.
Lỗi77.Filevariableexpected:Cầnbiếntệp.
Lỗi78.Pointerexpressionexpected:Cầnmộtbiểuthứckiểucontrỏ.
Lỗi79.IntegerorRealexpssionexpected:CầnmộtbiểuthứckiểuINTEGERhoặcREAL.
Lỗi80.Labelnotwithincurrentblock:Nhãnkhôngcótrongkhốiđangxét.
Lỗi81.Labelalrealydifined:Đãcónhãn.
Lỗi82.Undefinedlabelinprocessingstatementpart:Khôngthấynhãntrongđoạnđãxửlý.
Nhãn đã được khai báo, đã thấy toán tử GOTO có tham đối là nhãn đó nhưng không thấy nhãn trong
đoạnvănbản.Mỗinhãncầnxuấthiệnítnhấtlà3lầntheosơđồsau:
LABELL;
L:FORi:=TO {*}
GOTOL;
NếunhãnLkhôngcómặtở{*}sẽsinhlỗi82.
Lỗi83.Invalid@argument:Dùngcáctoántử@vớitoánhạngkhônghợplệ.
Toánhạnghợplệcho@làcácđịnhdanhcủabiến,thủtụcvàhàm.
Lỗi84.Unitexpected:CầncótừkhoáUNIT.
Lỗi85.";"expected:Cầncódấuchấmphẩy.
Lỗi86.":"expected:Cầncódấuhaichấm.
Lỗi87.","expected:Cầncódấuphẩy.
Lỗi88."("expected:Cầncódấumởngoặcđơn.
Lỗi89.")"expected:Cầncódấuđóngngoặcđơn.
Lỗi99."="expected:Cầncódấubằng.
Lỗi91.":="expected:Cầndấugán.
Lỗi111.Compilationabozted:Huỷviệcdịch(bằnglệnhCtrl+Break).
Lỗi112.CASEconstantoutofrange:HằngcủatoántửCASEkhôngnằmtronggiớihạn
từ32768đến32767
Lỗi113.Errorinstatement:Câulệnhsai.
Lỗikhôngxảyrakhiviếtsaikítựđầutiêncủacâulệnh.
Lỗi114.Cannotcallaninterruptprocedure:Khôngthểgọithủtụcngắt.
Lỗi 115. Must have an 8087 to compile this: Cần có bộ xử lý 8087 để dịch chương trình này, nếu có khai
báochếđộdịch{$N+}.Hãythửdùngtổhợp{$N+,E+}.
Lỗi 116. Must be in 8087 mode compile this: Phải dùng chế độ 8087 để dịch chương trình này. Không
đượcsửdụngcáckiểuSINGLE,DOUBLE,EXTENDED,vàCOMPtrongchếđộ{$N}.
Lỗi117.Targetaddressnotfound:Khôngtìmthấyđịachỉđãcho.
Lỗi118.Includefilesarenotallwedhere:Khôngđượcdùngtệpchồngởđây.
Lỗi119.TMPfileformaterror:LỗikhuôndạngtệpTMP.
TệpcóđuôiđúnglàTMPnhưngnộidungkhôngđúngdạngđó.
Lỗi120.NILexpected:CầngiátrịbằngNIL.
Lỗi121.Invalidqualifier:Địnhdạngkhônghợplệ.
Cóthểdocácnguyênnhânsau:
Viếtmộtbiếnđơncókèmchỉdẫnnhưbiếnmảng.
Viếtmộtbiếnđơnhoặcmảngtheotrườngnhưbiếnbảnghi.
Sửdụngbiếnkhôngthuộckiểucontrỏnhưmộtbiếncontrỏ.
Lỗi122.Invalidvariablereference:Thamchiếukhônghợplệtớibiến.
Bảnthânbiếnđượckhaibáođúngkiểucontrỏnhưngnộidungcủanókhôngphảilàđịachỉ.
Thườnggặptrongkhigọimộthàmkiểumộtcontrỏnhưngquêndùngkýhiệu^.
Lỗi123.Toomanysymbols:Cóquánhiềukýhiệu.
Chương trình có tổng số ký hiệu lớn hơn 64 KB. Cần chia thành những module nhỏ hơn nếu dịch trong chế
độ{$D+}.
Lỗi124.Statementparttoolarge:Phầnlệnhtoántửquálớn.
Turbo Pascal dành khoảng 24 KB cho phần toán tử. Nếu phần này quá lớn thì nên cắt chúng thành nhiều
thủtụchoặchàm.Nóichungmộtngườilậptrìnhtốtthườngquantâmđếntổchứccấutrúc.
Lỗi125.Modulehasnodebuginformation:
MuốnlàmđiềunàytaphảiđưamoduleSYSTEMvàotệpTURBO.TPL.
Lỗi139.Cannotaccessthissymbol:Khôngtruynhậpđượctớikýhiệunày.
Lỗi140.Invalidfloatingpointoperation:Sửdụngsaithaotácvớisốthực.
Có thể xảy ra hiện tượng tràn ô nhớ (kết quả tính toán vượt quá khả năng biểu diễn của ô nhớ) hoặc phép
chiachosố0.
Lỗi 141. Can not compile overlay to memory: Không thể dịch overlay trên miền nhớ RAM (mà phải đặt
chếđộdịchrađĩaDisk).
Lỗi142.Procedureorfunctionvariableexpected:Cầnsửdụngbiếndạngthủtụchoặchàm.
Thambiếnhìnhthứccủamộtthủtụchoặchàmcóthểlàmộtthủtụchoặchàm.
RUNTIMEERROR
Lỗi1.Invalidfunctionnumber:Saisốhiệuhàm
Lỗi2.Filenotfound:Khôngtìmthấyfile
Lỗi3.Pathnotfound:Khôngtìmthấyđườngdẫn
Lỗi4.Toomanyopenfiles:Mởquánhiềufile
Lỗi5.Fileaccessdenied:Khôngtruynhậpđượcfile
Lỗi6.Invalidfilehandle:Sốhiệufilekhônghợplệ
Lỗi12.Invalidfileaccesscode:Mãtruynhậpfilekhônghợplệ
Lỗi15.Invaliddrivenumber:Sốhiệuthiếtbịkhônghợplệ
Lỗi16.Cannotremovecurrentdirectory:Khôngthểxoáhoặcchuyểnthưmụchiệnhành
Lỗi17.Cannotrenameacrossdrives:Khôngthểđổitêncácthiếtbịchéonhau
Lỗi100.Diskreaderror:Lỗikhiđọcđĩa
Lỗi101.Diskwriteerror:Lỗikhighiđĩa
Lỗi102.Filenotassigned:Filechưađượcchỉđịnh
Lỗi103.Filenotopen:Filechưađượcmở
Lỗi104.Filenotopenforinput:Filechưađượcmởđểlấydữliệu
Lỗi105.Filenotopenforoutput:Filechưađựocmởđểxuấtdữliệu
Lỗi106.Invalidnumericformat:Địnhdạngsốkhônghợplệ
Lỗi150.Diskiswriteprotected:Đĩađangđượcbovệchốngghi
Lỗi151.Baddriverequeststructlength:Độlớncấuyêucầucấutrúcthiếtbịsai
Lỗi152.Drivenotready:Thiếtbịchưasẵnsàng
Chương trình đã đạt tới giới hạn file được mở. Tuỳ hệ điều hành mà giới hạn file được mở khác nhau, và
lỗinàyđượcbáokhisốfilemởđạttớigiớihạnđó.
Lỗi5.Fileaccessdenied:Sựtruycậpfilebịtừchối.
Lỗinàyxảyrakhi1trongnhữnglỗisauxãyra:
•Cólệnhthựchiệnghilênfilecóthuộctínhchỉđọc(Readonly)hoặcđóchỉlàđườngdẫn.
•Filehiệnthờibịkhoáhoặcbịchiếndụngbởi1ứngdụngkhác.
•Cólệnhtạo1filemới,hoặc1đườngdẫnmớitrùngvới1filehoặc1đườngdẫnđãtồntại.
•Cólệnhthựchiệnđọc1filechỉcóthuộctínhchỉghi(Writeonly).
•Cólệnhthựchiệnghivào1fileđãmởvớichếđộchỉđọc(Readonly).
•Cólệnhthựchiệnxoá(gỡ)1đườngdẫnhoặc1filekhôngcóthực.
•Quyềntruycậpvàofilebịkhoá.
Lỗi6.Invalidfilehandle:Filethựchiệnvônghĩa.
Nếulỗinàyxảyra,biếnfileđangđượcsửdụngđãbịlỗi,cónghĩalàbộnhớđãbịlỗi.
Lỗi12.Invalidfileaccesscode:Mãtruycậpfilevônghĩa.
LỗiđượcbáokhilệnhResethoặcRewriteđượcgọivới1giátrịchếđộFilevônghĩa.
Lỗi15.Invaliddrivenumber:Ổđĩavônghĩa.
SốđượctrảbởihàmGetdirhoặcChDirchỉ1ổđĩakhôngtồntại
Lỗi16.Cannotremovecurrentdirectory:Khôngthểxoáđườngdẫnhiệnthời.
Lỗiđượcbáokhicólệnhxoá1đườngdẫnđangđượcsửdụng.
Lỗi 17. Cannot rename across drives: Không thể đổi tên file mà trỏ đến 1 ổ đĩa khác hoặc 1 phân vùng
kháccủaổđĩa.
Lỗi100.Diskreaderror:Lỗiđọcđĩa.
Lỗixảyratrongkhiđọcfiletừđĩa.Điểnhìnhkhicólệnhtiếptụcđọcphầntiếptheocủacuốifile.
Lỗi101.Diskwriteerror:Lỗighiđĩa.
Lỗiđượcbáokhiđĩađãđầyvàcólệnhghivàođĩađó.
Lỗi102.Filenotassigned:Filechưađượckhaibáo.
Lỗi được báo khi lệnh Reset, Rewrite, Append, Rename và Erase được gọi với 1 biến chưa được khai
báo.
Lỗi103.Filenotopen:Filechưađượcmở.
Lỗi được báo khi các lệnh sau được gọi: Close, Read, Write, Seek, Eof, FilePos, FileSize, Flush,
Chồng đợi đã vượt qua giới hạn (có thể giảm dung lượng hoặc không xài biến cục bộ để giảm thiểu lỗi
này) hoặc chồng đợi có lỗi. Lỗi này chỉ được báo khi trình biên dịch có chế độ Kiểm tra Chồng đợi (Stack
Checking)đượcmở.
Lỗi203.Heapoverflowerror:TrànHeap.
Heap đã đạt tới giới hạn. Lỗi xảy ra khi có lệnh chỉ định Memory Exlicitly (?) với lệnh New, GetMen hoặc
ReallocMem,hoặckhi1lớpđốitượngđượctạoravàtrànbộnhớ.
Lưu ý: Free Pascal cung cấp 1 Heap tự động. Ví dụ nếu Heap đã đạt giá trị cực đại, Free Pascal sẽ chỉ
định thêm vùng nhớ nếu cần. Nhưng nếu Heap đã đạt giá trị cực đại cho phép bởi hệ điều hành hoặc phần
cứngthìlỗisẽxảyra.
Lỗi204.Invalidpointeroperation:LỗiphéptoánContrỏ.
LỗixảyrakhicólệnhDisposehoặcFreeMemmộtcontrỏNilhoặckhôngxácđịnh.
Lỗi205.Floatingpointoverflow:Lỗitrànsố.
Lỗixảyrakhicólệnhsửdụnghoặcsinhra1sốthựcquálớn.
Lỗi206.Floatingpointunderflow:Lỗitrànsố.
Lỗixảyrakhicólệnhsửdụnghoặcsinhra1sốthựcquánhỏ.
Lỗi207.Invalidfloatingpointoperation:Lỗisốkhôngxácđịnh.
LỗixảyrakhicóphéptínhtoánmộtcănthứchoặchàmLogcủa1sốâm.
Lỗi210.Objectnotinitialized:
When compiled with range checking on, a program will report this error if you call a virtual method without
havingcalledistrconstructor.
Lỗi211.Calltoabstractmethod:
Your program tried to execute an abstract virtual method. Abstract methods should be overridden, and the
overridingmethodshouldbecalled.
Lỗi212.Streamregistrationerror:Lỗiđăngkýluồng.
Lỗixảyrakhi1kiểubiếnkhônghợplệđăngkýtrênthưviệnObject.
Lỗi213.Collectionindexoutofrange:Thuthậpdanhmụcngoàivùng.
Lỗi xảy ra khi có lệnh truy cập những thông tin thu thập được với danh mục không xác định (lỗi trong thư
việnObject)
Lỗi214.Collectionoverflowerror:Thôngtinthuthậptrànbộnhớ.
Những thông tin thu thập được đã đạt giới hạn lưu trữ, và có lệnh thêm vào 1 thông tin (lỗi trong thư viện