1.1. Nhận biết lỗi chương trình
Xét các trường hợp sau để xác định các trường hợp lỗi chương trình thường gặp
– Trường hợp 1. Người lập trình viết sai cú pháp lệnh, chương trình lập tức dừng lại và thông báo lỗi cú pháp.
Xét ví dụ trên ta thấy khi bị sai cú pháp chương trình dừng và thông báo lỗi Syntax Error (lỗi cú pháp)
– Trường hợp 2. Người dùng nhập dữ liệu sai, chương trình thông báo lỗi nhập dữ liệu không đúng khuôn dạng.
Qua ví dụ ta thấy khi người dùng nhập dữ liệu sai, hàm int() không thể thực hiện được, chương trình dừng lại và báo lỗi. Mã lỗi là ValueError. Đây là lỗi Runtime (lỗi trong khi đang thực hiện) hay còn gọi là lỗi ngoại lệ (Exceptions error)
– Trường hợp 3. Chương trình thông báo lỗi chì số vượt quá giới hạn cho phép.
Array_b1.py
Khi chạy chương trình sẽ báo lỗi
Quan sát ví dụ trên, chương trình phát hiện lỗi chỉ số vượt qua giới hạn tại dòng 3. Chương trình dừng và báo lỗi. Mã lỗi là IndexError. Đây là lỗi Runtime
– Trường hợp 4. Chương trình thực hiện bình thường nhưng kết quả không đúng với yêu cầu của bài toán. Đây là lỗi logic bên trong chương trình.
+ Ta thấy trong ví dụ trên chương trình cho kết quả là 3 mà kết quả đúng là 1 + 2 + 3 = 6. Vì hàm range(3) trả lại vùng giá trị là 0, 1 , 2 chứ không phải là 1, 2, 3.
+ Trong chương trình không còn lỗi Runtime, nhưng kết quả đưa ra sai. Không có mã lỗi nào được trả lại. Đây là lỗi ngữ nghĩa hoặc lỗi logic bên trong chương trình.
– Tổng thể có thể phân biệt lỗi chương trình Python làm ba loại: 1. Lỗi khi có lệnh viết sai cú pháp hoặc sai cấu trúc ngôn ngữ Python quy định. Chương trình sẽ lập tức dừng và thông báo lỗi Syntax Error. 2. Lỗi khi không thể thực hiện một lệnh trong chương trình, Chương trình dừng lại và thông báo một mã lỗi. Lỗi này gọi lỗi ngoại lệ (Exceptions Error), mã lỗi trả lại gọi là mã lỗi ngoại lệ. 3. Chương trình chạy không lỗi ngoại lệ, nhưng kết quả đưa ra sai, không chính xác. Đây là lỗi lôgic bên trong chương trình. – Với mỗi loại lỗi trên, cách xử lý và kiểm soát lỗi sẽ khác nhau. |
---|
1.2. Một số lỗi ngoại lệ thường gặp
– Nếu gặp lỗi ngoại lệ, chương trình Python sẽ dừng lại, báo lỗi.
– Mỗi lỗi ngoại lệ sẽ sinh ra một mã lỗi riêng biệt. Thông qua mã lỗi để biết cách xử lí các lỗi này
– Một số mã lỗi ngoại lệ thường gặp
Mã lỗi ngoại lệ |
Mô tả lỗi |
ZeroDivisionError |
Lỗi này xảy ra khi lệnh thực hiện phép chia cho giá trị 0. |
IndexError |
Lỗi xảy ra khi lệnh cố gắng truy cập phần tử của danh sách nhưng chỉ số vượt quá giới hạn. |
NameError |
Lỗi xảy ra khi chương trình muốn tìm một tên nhưng không thấy. Ví dụ khi lệnh gọi một hàm nhưng không có hàm đó. |
TypeError |
Lỗi kiểu dữ liệu. Một số ví dụ lỗi loại này: – Lệnh truy câp một phần tử của danh sách nhưng chỉ số không là số nguyên. – Lệnh tính biểu thức số nhưng lại có một toán hạng không phải là số. |
ValueError |
Lỗi liên quan đến giá trị của đối tượng. Lỗi khi thực hiện lệnh chuyển đổi kiểu dữ liệu, đối số của hàm có giá trị mà hàm không hỗ trợ. Ví dụ khi thực hiện lệnh int(“1.55”) sẽ sinh lỗi loại này. |
IndentationError |
Lỗi khi các dòng lệnh thụt vào không thằng hàng hoặc không đúng vị trí. |
SyntaxError |
Lỗi cú pháp. |
– Ví dụ: Một số mã lỗi trong thực tế
+ Mã lỗi IndexError:
+ Mã lỗi ValueError