Hướng dẫn lỗi 121 trong pascal

MỘT SỐ LỖI CÚ PHÁP THƯỜNG GẶP CỦA PASCAL 1. Lỗi cú pháp là những lỗi phát sinh do lập trình viên viết sai những quy định về văn phạm của hệ thống hoặc ngơn ngữ. Thí dụ các lỗi sau đây là những 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 được phát hiện trong quá trình dịch. Turbo Pascal báo lỗi cú pháp theo nguyên tắc "Mỗi lần chỉ báo một lỗi". Nếu gặp lỗi ta cần trở về chế độ soạn thảo, tìm vị trí xuất hiện lỗi, sửa lại lỗi đĩ rồi dịch lại chương trình. Sau khi báo lỗi, Turbo Pascal sẽ chờ ta bấm phím ESC để trở về chế độ soạn thảo. Con trỏ của màn hình soạn thảo sẽ đặt ở cạnh vị trí xuất hiện lỗi, thơng thường quá đi 1 ký tự. 3. Các thơng báo lỗi thường gặp và gợi ý khắc phục. Lỗi 2. Identifier expected: mong gặp định danh (có thể do chưa khai báo biến, hằng) Lỗi 3. Unknown identifier: định danh chưa được khai báo. Hãy khai báo định danh này ở đầu thủ tục hoặc chương trình.( có thể do sai chính tả một tên, từ khoá nào đó) Lỗi 4. Duplicate identifier: định danh được khai báo 2 lần trở lên. Lỗi 5. Syntax error: Lỗi cú pháp. Gặp một ký tự sai hoặc viết sai một hằng. Lỗi 6. Error in real constant: Viết sai hằng thực. Lỗi 7. Error in integer constant: Viết sai hằng nguyê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 ngồi khoảng -2147483648..2147483647 cần được khai báo theo kiểu thực, thí dụ: CONST c = 12345678912.0; Lỗi 8. String constant exceeds line: giá trị của xâu ký tự quả dài, xem lại cĩ thiếu dấu đĩng/mở (dấu nháy đơn) hằng văn bản khơng? Lỗi 10. Unexpected end of file: Cần gặp dấu kết tệp. Lỗi 10 cĩ thể xuất hiện trong các trường hợp sau: - Trong trương trình các cặp BIGIN và END khơng cân đối. - Tệp khác được gọi lồng tại một vị trí khơng hợp lệ. - Chú thích chưa được đĩng bằng dấu } hoặc * ). Lỗi 11. Line too long: Dịng dài quá Bộ soạn thảo cho phép phát sinh các dịng dài tối đa 249 ký tự trong khi khi chương trình dịch chỉ làm việc với các dịng dài tối đa 126 ký tự. Lời khuyên: Khơng nên viết các dịng dài quá 60 ký tự. Lỗi 12. Type identifier expected: Cần cĩ định danh kiểu Lỗi 20. Variable identifier expected: Cần một định danh cho biến Thí dụ FOR = 4 TO 20 DO sẽ sinh lỗi 20. 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 trong khoảng 0 .. 255. Lỗi 26. TYPE mismatch: Kiểu khơng tương thích. các nguyên nhân sinh lỗi cĩ thể là: - Biểu thức được gán cho biến khơng đúng kiểu. Thí dụ VAR x: char; BEGIN x: = 127 * 8 END. Lỗi 29. Ordinal type expected: Cần một kiểu thứ bậc. Trong trường hợp này khơng được dùng các kiểu Real, string, Record, PROCEDURE hoặc pointer. Lỗi 30. Integer constant expected: Cần một hằng nguyên Lỗi 31. Constant expected: Cần một hằng Lỗi 33. Type identifier expected: Cần một định danh kiểu 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 do not match operator: Kiểu tốn hạng khơng phù hợp với tố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ạ hoặc quên viết dấu phép tốn trong biểu thức. Lỗi 43. Illegal assigment: Gans Gán khơng hợp lệ. Khơng được gán trị cho biến tệp hoặc biến khơng định kiểu. Khơng được gán trị cho định danh hàm ở ngồi thân của hàm đĩ. Lỗi 44. Field identifier expected: Cần một định danh thường. Lỗi phát sinh khi sử dụng bản ghi (RECORD) khơng cĩ trường hợp đi kèm. Lỗi 54. OF expected:Thiếu OF trong TYPE, CASE, FILE, SET, ARRAY Lỗi 57. THEN expected:Thiếu THEN trong IF Lỗi 58. TO or DOWN TO expected: Thiếu To hoặc DOWN TO trong FOR Lỗi 66. String variable expected: Cần một biến string. Lỗi 67. String expression expected; Cần một biểu thức string. Lỗi 74. Constant and case types do not match: Kiểu hằng và kiểu biểu thức trong CASE khơng phù hợp với nhau. Lỗi 75. Record variable expected: Cần một biến kiểu RECORD. Lỗi 76. Constant out of range: Hằng vượt quá miền. Lỗi cĩ thể gặp trong các tình huống sau: - Chỉ dẫn mảng vượt ra ngồi giới hạn của mảng - Gọi thủ tục và hàm với các tham trị cụ thể vượt ra ngồi giới hạn đã khai báo. Lỗi 79. Integer or Real expssion expected: Cần một biểu thức kiểu INTEGER hoặc REAL. 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 99. " = " expected: Cần cĩ dấu bằng. Lỗi 91. ":= "expected: Cần dấu gán Lỗi 92 " [ " or " (. " expected: Cần mở dấu ngoặc vuơng khi khai báo hoặc chỉ định phần tử của mảng, tập. Lỗi 93. " ] " or " .) " expected: Cần dấu đĩng ngoặc vuơng khi khai báo hoặc chỉ định phần tử của mảng hoặc tập. Lỗi 94. " ." expected: Cần dấu chấm khi chỉ định một trường trong bản ghi Lỗi 95 " .." expected: Cần dấu nhiều chấm khi liệt kê giới hạn mảng, tập. Lỗi 98. Integer variable expected: Cần biến nguyên. Lỗi 100. String. length, mismatch: Chiều dài xâu khơng phù hợp với số lượng các phần tử của mảng ký tự. Lỗi 102. String constant expected: Cần một hằng kiểu xâu. Lỗi 103. Integer or real variable expected: Cần biến nguyên hoặc thực (biến số). Lỗi 104. Ordinal variable expected: Cần biến (kiểu) thứ tự. Lỗi 106. Character expressionexpected: Cần biểu thức kiểu ký tự. Lỗi 112 CASE constant out of range: Hằng của tốn tửCASE khơng nằm trong giới hạn. -32768 dến 32767 Lỗi 113 Error in statement: Câu lệnh sai. Lỗi khơng sảy ra khi viết sai kí tự đầu tiên của câu lệnh. Lỗi 200 Division by zero: chia cho số 0. (Lỗi khi chạy chương trình)

Tóm tắt nội dung tài liệu

  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: 1
  2. 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 [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. Các nguyên nhân có Mã lỗi và thông báo lỗi Ý nghĩa Hướng khắc phục thể 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 1. Mã chương trình xét liệu virus có đang chiếm quá lớn. mất vùng nhớ hoặc phải sử 2. Mã dữ liệu quá lớn. dụng biện pháp overlay. 3. Bị virus. Thông thường điều này chỉ 1 Out of memory Không đủ vùng nhớ 4. Các chương trình xảy ra trong môi trường thường trú chiếm thực (Real mode). Nếu bạn bớt vùng nhớ qui chạy Borland Pascal trong ước (conventional môi trường giả lập được memory). 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 2
  3. Các nguyên nhân có Mã lỗi và thông báo lỗi Ý nghĩa Hướng khắc phục thể 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. 3 Unknown identifier Không biết danh biểu này 3. Gọi tới biến, danh 3. Xem xét lại tầm vực của biểu này ở ngoài tầm danh biểu. vực của nó. 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 4 Duplicate identifier Danh biểu bị trùng lặp 2. Khai báo lại tên biến chương trình. với kiểu dữ liệu khác trong cùng một khối. 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 Quên dấu nháy “’” kết thúc chuỗi.Thông thường là do lập trình Bổ sung dấu nháy đằng sau 8 String constant exceeds line Chuỗi dài quá một dòng viên quên dấu nháy kết chuỗi. thúc chuỗi trong câu lệnh WRITE hoặc WRITELN. 9 Too many nested files Quá nhiều file lồng nhau Thông thường do lập trình viên quên hoặc dùng 10 Unexpected end of file Không tìm thấy kết thúc file Quên từ khóa “END.” “END;” ở cuối chương trình chính. Câu lệnh viết dài quá Ngắt câu lệnh thành nhiều 11 Line too long Dòng quá dài cột 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. 3
  4. Các nguyên nhân có Mã lỗi và thông báo lỗi Ý nghĩa Hướng khắc phục thể 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 cho thích hợp với 13 Too many open files Mở quá nhiều file cùng lúc 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. Không tìm thấy thư mục đã định nghĩa trong Khai báo lại thư mục hoặc [Options >Directories ] xác định thư mục có thuộc 14 Invalid filename Tên file không hợp lệ. để lưu file này tính Archive, bỏ thuộc tính 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 15 File not found Không tìm thấy file file Xóa bớt các file không cần thiết trên đĩa để lấy thêm 16 Disk full Đĩa bị đầy chổ 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 biên dịch. Gõ CTRL-O-O để Dẫn hướng biên dịch không 17 Invalid compiler directive biên dịch không có trong xem các dẫn hướng biên hợp lệ qui định dịch được Pascal hỗ trợ mặc định. 18 Too many files Có quá nhiều file 4
  5. Các nguyên nhân có Mã lỗi và thông báo lỗi Ý nghĩa Hướng khắc phục thể Đị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 20 Variable identifier expected Yêu cầu danh biểu là biến truyền trị cho tham biến cho tham biến mà thôi. Xem lại kiểu dữ liệu qui 21 Error in type Lỗi về kiểu dữ liệu định ở vị trí này. 22 Structure too large Cấu trúc quá lớn Kiểu cơ sở bị vượt quá 23 Set base type out of range phạm 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 files or objects tượng Chiều dài chuỗi không hợp 25 Invalid string length lệ 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 26 Type mismatch Không khớp kiểu dữ liệu không thuộc về cùng dùng biện pháp ép kiểu một kiểu dữ liệu (type casting). Phạm vi không khớp với 27 Invalid subrange base type phạm vi của kiểu cơ sở 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) 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 Yêu cầu hằng số nguyên expected. 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 Kiểu dữ liệu trả về của Kiểu dữ liệu trả về của Khai báo lại kiểu dữ liệu 34 Invalid function result type hàm không phải là kiểu hàm không hợp lệ trả về. đơn giản, chuẩn 5
  6. Các nguyên nhân có Mã lỗi và thông báo lỗi Ý nghĩa Hướng khắc phục thể Quên khai báo LABEL Yêu cầu danh biểu là một 35 Label identifier expected trước khi dùng câu lệnh nhãn GOTO 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 Kiểm tra lỗi gõ sai các từ BEGIN của chương khóa, các khai báo trước 36 Begin expected Không thấy BEGIN trình chính nên trình biên BEGIN của chương trình dịch hiểu nhầm đã bắt chính. đầu câu lệnh mà không có BEGIN. Thiếu từ khóa END tương ứng của BEGIN 37 End expected Không thấy END 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 Toán hạng không phù hợp Xem xét lại biểu thức xảy operator với toán tử 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 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 46 Undefined external Chưa định nghĩa External thức .BIN nhưng chưa 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 49 Data segment too large Đoạn mã dữ liệu quá lớn 6
  7. Các nguyên nhân có Mã lỗi và thông báo lỗi Ý nghĩa Hướng khắc phục thể Viết thiếu từ khóa DO 50 Do expected Chờ DO sau câu lệnh FOR hoặc 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 54 Of expected Chờ OF trong câu lệnh CASE Viết thiếu từ khóa 55 Interface expected Chờ INTERFACE INTERFACE trong cấu 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 57 Then expected Chờ THEN THEN trong câu lệnh IF Viết thiếu từ khóa 58 To or Downto expected Chờ TO hoặc DOWNTO 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 59 Undefined forward FORWARD. Thường cho tất cả thủ tục, hàm có FORWARD xảy ra trong trường hợp gọi lẫn nhau. đệ qui hỗ tương. 60 Too many procedures Quá nhiều PROCEDURE 61 Invalid typecast Ép kiểu không đúng 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 62 Division by zero Chia cho số 0 2. Unit CRT bị lỗi do tốc 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) 7
  8. Các nguyên nhân có Mã lỗi và thông báo lỗi Ý nghĩa Hướng khắc phục thể 63 Invalid file type Kiểu file không đúng Thông thường là do 64 Cannot read or write variables Không thể đọc hoặc ghi muốn đọc hoặc ghi trực Đọc/Ghi gián tiếp cho kiểu of this type biến thuộc kiểu dữ liệu này tiếp dữ liệu kiểu dữ liệu này. Boolean 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 Lỗi trong dạng thức file 72 Unit file format error Unit Viết thiếu từ khóa IMPLEMENTATION 73 Implementation expected Chờ IMPLEMENTATION trong cấu trúc của UNIT. 74 Constant and case types do not Hằng và kiểu giá trị hằng match 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 Chờ biểu thức nguyên hoặc expected thực Xem lại vị trí định nghĩa Nhãn không thuộc về block 80 Label not within current block nhãn hoặc xem lại tầm vực hiện tại của nhãn. Nhãn này đã được định 81 Label already defined nghĩa rồi 82 Undefined label in preceding Nhãn chưa được định nghĩa statement part trong phần phát biểu trước 83 Invalid @ argument Sử dụng sai đối số @ 84 Unit expected Chờ đợi Unit 8
  9. Các nguyên nhân có Mã lỗi và thông báo lỗi Ý nghĩa Hướng khắc phục thể 85 “;” expected Chờ đợi “;” Thêm “;” 86 “:” expected Chờ đợi “:” Thêm “:” 87 “,” expected Chờ đợi “,” Thêm “,” 88 “(“ expected Chờ đợi “(“ Thêm “(“ Đây là những lỗi khá 89 “)” expected Chờ đợi “)” Thêm “)” phổ biến. Thông thường 90 “=” expected Chờ đợi “=” Thêm “=” là do gõ sai hoặc gõ sót 91 “:=” expected Chờ đợi “:=” Thêm “:=” các token “;”,…. 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 “..” Giảm bớt số biến đã khai báo. Thông thường nên tăng 96 Too many variables Quá nhiều biến 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 97 Invalid For control variable vòng lặp thuộc kiểu FOR không thích hợp điều khiển vòng lặp FOR. không có thứ tự Chờ một biến kiểu số 98 Integer variable expected nguyên 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 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 Chờ đợi biến nguyên hoặc 103 Integer or real variable expected thực 104 Ordinal variable expected Chờ đợi biến thứ tự Xem lại các đoạn mã Chèn mã assembly trực assembly. Đảm bảo đúng cú 105 Inline error Lỗi INLINE tiếp vào chương trình pháp của Microsoft nguồn gây ra lỗi. Assembly. 106 Character expression expected Chờ đợi biểu thức kí tự 107 Too many relocation items Quá nhiều mục tái định vị 9
  10. Các nguyên nhân có Mã lỗi và thông báo lỗi Ý nghĩa Hướng khắc phục thể 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 113 Error in statement Sai lầm trong câu lệnh 114 Cannot call an interrupt Không gọi được thủ tục procedure ngắt 115 - Lỗi này không xảy ra nữa kể từ thế hệ máy 80386 Cần bộ xử lí dấu chấm 116 Must be in 8087 mode to DX. động 8087 để biên dịch compile this - Trong menu [Options > phần này 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 118 Include files are not allowed Không được phép here 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 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 126 Files must be Var parameters file như là một tham trị kiểu dữ liệu File header của Procedure hoặc trong header Function. 127 Too many conditional symbols Quá nhiều kí hiệu điều kiện Đặt dẫn hướng điều kiện 128 Misplaced conditional directive không đúng chỗ 10
  11. Các nguyên nhân có Mã lỗi và thông báo lỗi Ý nghĩa Hướng khắc phục thể Sai lầm ở dẫn hướng 129 ENDIF directive missing ENDIF 130 Error in initial conditional Sai lầm ở khởi tạo định defines nghĩa điều kiện Khai báo các header trong 131 Header does not match previous HEADER không khớp với phần INTERFACE và trong definition định nghĩa trước đó. IMPLEMENTATION của Unit phải khớp nhau. Đây là lỗi khá khó chịu! Có thể đĩa bị hỏng, bị 132 Critical disk error Đĩa có lỗi nghiêm trọng lỗi CRC, quên bẻ chốt Xem xét lại ổ đĩa và đĩa 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 133 Cannot evaluate this expression này được biểu thức. Thông thường là do 134 Expression incorrectly Biểu thức kết thúc sai thiếu toán hạng, thiếu terminated 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 Không cho phép biến có cấu Sử dụng biến kiểu đơn allowed here. trúc ở đây. giản. 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 138 Cannot evaluate without Không thể lượng giá mà thể là do Unit SYSTEM vào TURBO.TPL trở lại. SYSTEM unit không có unit SYSTEM đã bị gỡ bỏ khỏi - Khai báo USES SYSTEM; TURBO.TPL. Dùng TPUMOVER.EXE để xem lại các Unit còn đang được tích hợp trong TURBO.TPL 11
  12. Các nguyên nhân có Mã lỗi và thông báo lỗi Ý nghĩa Hướng khắc phục thể 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 này -Force far call - để truy cập/ gọi được kí hiệu này Tác vụ xử lí dấu chấm 140 Invalid floating-point operation động sai 141 Cannot compile overlays to Không thể biên dịch Overlay memory vào bộ nhớ 142 Procedure or function variable Chờ đợi biến thủ tục hoặc expected biến hàm. 143 Invalid procedure or function Liên hệ thủ tục hoặc hàm reference 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 Không cho phép dùng kiểu allowed here đối tượng ở đây. Chờ đợi VIRTUAL 149 VIRTUAL expected (phương thức ảo) Chờ đợi danh biểu là 150 Method identifier expected phương thức 151 Virtual constructors are not Không cho phép phương allowed thức thiết lập ảo Chờ đợi danh biểu 152 Constructor identifier expected CONSTRUCTOR (phương thức thiết lập) Chờ đợi danh biểu 153 Destructor identifier expected DESTRUCTOR (phương thức hủy) 154 Fail only allowed within Chỉ cho phép Fail bên trong constructors CONSTRUCTOR 155 Invalid combination of opcode Sai lầm trong phối hợp mã and operands lệnh và toán hạng 12
  13. Các nguyên nhân có Mã lỗi và thông báo lỗi Ý nghĩa Hướng khắc phục thể Chờ đợi một tham khảo đến 156 Memory reference expected bộ nhớ. 157 Cannot add or substract Không thể thêm hoặc bớt relocatable symbols 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 Không thể dùng các chỉ thị Chỉ xảy ra trên các máy enabled 286/287 8088/8086. 160 Invalid symbol reference Liên hệ kí hiệu sai 161 Code generation error. Lỗi phát sinh mã 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 Như lỗi số 13 compile time 4 Too many open files Mở quá nhiều File cùng lúc error. 1. File còn đang được mở bởi một chương trình khác. 5 File access denied Bị từ chối truy cập File 2. Ghi đè lên một file đang có thuộc tính read only. 6 Invalid file handle Sai ở thẻ File 13
  14. 12 Invalid file access code Sai khi truy cập File Truy cập một ổ đĩa không 15 Invalid drive number Sai ở số hiệu ổ đĩa đượ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. 16 Cannot remove current 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 directory được 2. Thư mục đang còn chứa tồn tại trong thư mục, kể cả File. các file ẩn. File cũ và File đó mới được 17 Cannot rename across Không thể đặt lại tên File từ đặt tên lại phải nằm trong drives đĩa này qua đĩa kia cùng thư mục. I/O Errors 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) 103 File not open File chưa được mở Thiếu câu lệnh Reset(File) Xem lại chương trình 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) Thủ tục Read hoặc Readln của Pascal được quá tải cho Đừng sử dụng các thủ tục nhiều kiểu dữ liệu khác nhau Read hoặc Readln được cung nên gây ra lỗi này khi người cấp sẳn. Lập trình viên nên 106 Invalid numeric format Sai dạng thức dữ liệu số dùng nhập dữ liệu kiểu chữ viết riêng cho mình các thủ thay vì nhập dữ liệu kiểu số tục nhập có kiểm tra dữ liệu cho một biến kiểu số. 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 14
  15. Bật tab write-protected về 105 Disk is write-protected Đĩa bị chống ghi 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 Xem lại câu lệnh và tham số 153 Unknown command Không biết câu lệnh này dòng lệnh. CRC: Cyclic Redundancy 1. Cập nhật lại file dữ liệu. 154 CRC error in data Dữ liệu bị lỗi CRC Check. Lỗi ở mã vòng sửa 2. Kiểm tra lại tình trạng vật sai. lí của đĩa. 155 Bad drive request Sai trong cấu trúc dữ liệu của structure length đĩa. 1. Có thể do cross-link file. 2. Có thể do bảng FAT (File 156 Disk seek error Sai khi đọc đĩa Xem lại đĩa. 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 ổ 157 Unknown media type Không biết kiểu dữ liệu này Sử dụng đĩa đúng format. đĩa chưa được hỗ trợ bởi Turbo Pascal. 1. Đĩa bị hỏng Sử dụng đĩa khác để ghi/đọc 158 Sector not found Không tìm thấy cung từ này 2. Lỗi cross-link file dữ liệu 159 Printer out of paper Máy in hết giấy 160 Device write fault Lỗi xuất ra thiết bị Kiểm tra lại các thiết bị liên 161 Device read fault Lỗi khi đọc từ thiết bị quan. 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ú Thực hiện phép chia cho số Kiểm tra lại diễn tiến của Đây là các lỗi làm 200 Division by zero 0 các biến trong chương trình dừng ngay chương Lỗi vượt quá phạm vi dữ Dùng dẫn hướng biên dịch trình đang thực thi. 201 Range check error liệu {$R-} nhưng phải cẩn thận. Một số trường hợp 202 Stack overflow error Lỗi tràn stack 1. Kiểm tra lại tổng kích có thể gây Halt toàn thước các biến đã khai báo bộ hệ thống. trong chương trình, trong Thông thường lập 15
  16. từng thủ tục. trình viên cần phải 2. Giới hạn độ sâu của các xem lại phân tích lời gọi đệ qui. lôgich của chương 3. Dùng dẫn hướng biên trình để sử dụng các dịch {$M xxxx, yy, zzzz} để kiểu dữ liệu khác yêu cầu một vùng stack lớn thích hợp hơn. hơn (xxxx: stack size). 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 203 Heap overflow error Lỗi tràn Heap hơn vùng Heap 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 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 206 Floating-point underflow hụt Real) Sai ở tác vụ dấu chấm 207 Invalid floating-point operation động. Chưa cài đặt trình quản lí 208 Overlay manager not installed 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. Gọi tới một phương thức 211 Call to abstract method trừu tượng 212 Stream registration error Lỗi đăng kí dòng dữ liệu. Chỉ mục tuyển tập vượt quá 213 Collection index out of range phạm vi 214 Collection overflow error. Lỗi tràn tuyển tập 16
  17. 17


Page 2

YOMEDIA

Đố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...

18-08-2013 604 62

Download

Giấy phép Mạng Xã Hội số: 670/GP-BTTTT cấp ngày 30/11/2015 Copyright © 2009-2019 TaiLieu.VN. All rights reserved.