btvn.vn
Tìm kiếm Đăng nhập

Phân biệt lỗi cú pháp, ngoại lệ và lỗi lôgic

Lưu trên thiết bị này
Lỗi và kiểm thử chương trình Python · Chọn bài khác

Ba cách lỗi bộc lộ

Viết `if n > 0 print(n)` thiếu dấu `:` và cấu trúc đúng sẽ gây `SyntaxError`: Python không thực hiện được mã sai cú pháp. Với `n = int("1.5")`, cú pháp hợp lệ nhưng lúc chạy phép đổi này gây `ValueError`. Hai trường hợp đều dừng nếu không có xử lí thích hợp, nhưng nguyên nhân khác nhau. Lỗi lôgic khó thấy hơn: chương trình vẫn chạy, song kết quả không đúng yêu cầu. Nếu cần tính tổng 1+2+3 mà viết `sum(range(3))`, kết quả là 3 vì `range(3)` cho 0,1,2; kết quả đúng phải là 6. Muốn phát hiện, cần có đầu ra mong đợi để so sánh. Trong bài này, “ngoại lệ” dùng cho lỗi phát sinh khi chạy một lệnh hợp lệ về cú pháp, không gọi mọi lỗi là lỗi lôgic.

Bài luyện

`n = int("1.5")` hợp cú pháp nhưng khi chạy dừng. Đây là loại lỗi nào?
Chọn một đáp án

Bài luyện

Nếu chương trình tính tổng 1+2+3 bằng `sum(range(3))` và in 3, lỗi chính là gì?
Chọn một đáp án

Bài luyện

Dòng `if n > 0 print(n)` thiếu phần nào để mở khối lệnh đúng?
Chọn một đáp án

Đang học