[toc:ul]
- Hoạt động 1: Phân biệt một số loại lỗi chương trình:
Câu hỏi và bài tập củng cố:
Đây là lỗi cú pháp.
Đây là lỗi lôgic nội tại, không phải lỗi ngoại lệ.
- Một số lỗi ngoại lệ thường gặp:
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ợ.
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.
Câu hỏi và bài tập củng cố:
a) Lỗi kiểu dữ liệu: TypeError.
b) Lỗi giá trị dữ liệu: ValueError.
c) Lỗi kiểu dữ liệu: TypeError.
d) Nếu có lỗi xảy ra thì có thể là các loại lỗi sau đây:
+ TypeError nếu dữ liệu (số 10) truyền vào đối số của hàm x() bị sai kiểu.
+ NameError nếu hàm x() chưa được định nghĩa trước đó.
+ TypeError nếu giá trị trả lại của hàm x(10) không cùng kiểu để có thể thực hiện phép toán 12 + x(10).
- Nhiệm vụ 1:
Các khả năng sinh lỗi của chương trình là:
- Nhiệm vụ 2:
Các khả năng sinh lỗi của chương trình là:
Luyện tập 1: Hàm có thể như sau:
- Nhóm lệnh 1 có lỗi chỉ số.
- Nhóm lệnh 2 có lỗi kiểu dữ liệu.
Luyện tập 2: gttb = sum(A)/len(A)
Lỗi có thể phát sinh là lỗi chia cho 0 nếu dãy A rỗng.
Đáp án trắc nghiệm:
Câu 1 | Câu 2 | Câu 3 | Câu 4 | Câu 5 | Câu 6 |
B | A | C | C | D | B |
Vận dụng 1: Chương trình có thể như sau:
Chương trình trên có thể phát sinh lỗi ngoại lệ như sau:
- Dữ liệu đã nhập không phải là số tự nhiên, ví dụ nhập số thập phân hoặc xâu kí tự.
- Không nhập gì mà nhấn phím Enter ngay sau dòng yêu cầu nhập liệu.
Vận dụng 2:
Nếu chương trình có lệnh gọi đến một biến chưa được gán hay hàm chưa được xác định nghĩa thì sẽ phát sinh lỗi NameError.
Ví dụ về một lỗi chương trình khi chạy sinh mã lỗi NameError: