Bài giảng Kỹ thuật lập trình: Bài 8 - ThS. Trịnh Thành Trung

10 19 0
Bài giảng Kỹ thuật lập trình: Bài 8 - ThS. Trịnh Thành Trung

Đang tải... (xem toàn văn)

Thông tin tài liệu

▫ Phòng ngừa bằng các điều kiện trước và sau khi gọi mỗi phần chương trình: điều gì phải đúng trước khi gọi chương trình, điều gì xảy ra sau khi chương trình thực hiện xong. ▫ Dùng chú[r]

(1)

Bài 8

(2)

Nội dung

1. Khái niệm

2. Phòng ngừa sai sót liệu

3. Xử lý lỗi

(3)

1

(4)

phòng ngừa

Defensive Programming

Defensive driving

(5)

Lập trình phòng ngừa

Defensive programming

▪ Ý tưởng chính: chương trình (CTC) nhận liệu vào bị lỗi chạy thơng, chương trình khác nhận liệu đầu vào bị lỗi

▪ Lập trình phịng ngừa cách tự bảo vệ chương trình khỏi

các ảnh hưởng tiêu cực liệu không hợp lệ

các rủi ro đến từ kiện tưởng "không bao giờ" xảy

(6)

Các lỗi

phòng ngừa

▪ Lỗi liên quan đến phần cứng

Đảm bảo lỗi buffer overflows hay divide by zero kiểm

soát

▪ Lỗi liên quan đến chương trình

Đảm bảo giá trị gán cho biến nằm vùng kiểm soát

Do not trust anything; verify everything

▪ Lỗi liên quan đến người dùng

Đừng cho người dùng thực thao tác theo dẫn, kiểm tra thao tác họ

▪ Lỗi liên quan đến kỹ thuật phòng ngừa!

Mã nguồn cài đặt kỹ thuật phịng ngừa có khả gây lỗi,

(7)

Các giai đoạn

lập trình phòng ngừa

▪ Lập kế hoạch thực công việc:

Dành thời gian để kiểm tra gỡ rối chương trình cẩn thận : hồn

thành chương trình trước ngày so với hạn nộp

▪ Thiết kế chương trình:

Thiết kế giải thuật trước viết ngơn ngữ lập trình cụ thể

▪ Giữ vững cấu trúc chương trình:

Viết kiểm thử phần chương trình: phần chương trình dùng để làm

Viết kiểm thử mối liên kết phần chương trình: quy trình nghiệp vụ

Phòng ngừa điều kiện trước sau gọi phần chương trình: điều phải trước gọi chương trình, điều xảy sau khi chương trình thực xong

(8)

Kiểm tra cái gì,

khi nào?

▪ Testing: vấn đề làm chương trình khơng chạy

▪ Kiểm tra theo cấu trúc chương trình: Kiểm tra việc thực nhiệm vụ đặt cho phần chương trình

Ví dụ: điều xảy với chương trình lề văn bản, hàm ReadWord() bị lỗi ?

▪ Nếu chương trình khơng có tham số đầu vào, mà thực thi nhiệm vụ sinh kết khơng cần kiểm tra nhiều

Hầu hết chương trình khơng

Ví dụ: điều xảy với chương trình lề văn bản,

▸ Khơng nhập đầu vào ?

▸ Đầu vào xâu/file chứa từ hay chữ quy

(9)

Kiểm soát lỗi

có thể xảy

▪ Error handling: xử lý lỗi mà ta dự kiến xảy

▪ Tùy theo tình cụ thể, ta trả về: ▫ một giá trị trung lập

thay đoạn liệu hợp lệ

trả giá trị lần trước

thay giá trị hợp lệ gần

ghi vết cảnh báo vào tệp

trả mã lỗi

gọi thủ tục hay đối tượng xử lý

(10)

Chắc chắn hay

chính xác?

Chắc chắn: chương trình ln chạy thơng, kể có lỗi

Chính xác: chương trình khơng gặp lại lỗi

▪ Ví dụ: Lỗi thị trình xử lý văn bản: thay đổi nội dung văn bản, phần dịng văn phía hình bị thị sai Khi người dùng phải làm gì?

Tắt chương trình

Nhấn PgUp PgDn, hình làm

Ưu tiên tính chắn thay tính xác:

Ngày đăng: 09/03/2021, 06:29

Tài liệu cùng người dùng

Tài liệu liên quan