Tại Sao Chương Trình Gặp Sự Cố

Tại Sao Chương Trình Gặp Sự Cố
Tại Sao Chương Trình Gặp Sự Cố

Video: Tại Sao Chương Trình Gặp Sự Cố

Video: Tại Sao Chương Trình Gặp Sự Cố
Video: Trước Khi Trút Hơi Thở Cuối Cùng Nữ Ca Sĩ Phi Nhung Bị Chẩn Đoán Những Gì? | SKĐS 2024, Tháng mười một
Anonim

Sự đa dạng của các nhiệm vụ được giải quyết ngày nay với sự trợ giúp của máy tính cá nhân được cung cấp bởi sự tồn tại của một bộ chương trình ứng dụng khổng lồ. Sự thuận tiện khi làm việc với phần mềm chủ yếu phụ thuộc vào độ tin cậy của nó, điều này được thể hiện trong trường hợp không xảy ra các tình huống khẩn cấp. Tuy nhiên, nhiều chương trình gặp sự cố vào thời điểm không thích hợp nhất. Tại sao?

Tại sao
Tại sao

Cơ chế ngoại lệ được sử dụng để theo dõi và xử lý các tình huống đặc biệt, bất thường hoặc sai sót phát sinh trong quá trình vận hành các chương trình máy tính dưới sự kiểm soát của các hệ điều hành hiện đại. Các ngoại lệ có thể là phần cứng (do bộ xử lý ném ra) và phần mềm (do chính ứng dụng ném ra hoặc một số thành phần bên ngoài của trình cắm thêm).

Bất kể loại nào, ngoại lệ đều có thể được bắt và xử lý chính xác. Các trường hợp ngoại lệ không được chuyển đến trình xử lý thư viện thời gian chạy gốc hoặc trình xử lý do hệ điều hành cài đặt. Nếu điều này xảy ra, chương trình bị treo với một thông báo hoặc một cửa sổ kết thúc bất thường (trong Windows). Nếu trình xử lý hệ điều hành không hoạt động (ví dụ, nó đã được cố tình gỡ bỏ), chương trình sẽ "âm thầm bị treo". Do đó, các chương trình bị lỗi do các ngoại lệ không thể được xử lý. Các lý do cho sự xuất hiện của các trường hợp ngoại lệ là khác nhau.

Trong phần lớn các trường hợp, các chương trình gặp sự cố do việc thực thi mã riêng của chúng có chứa các lỗi triển khai rõ ràng hoặc ngầm định. Danh sách các nguyên nhân có thể gây ra trường hợp khẩn cấp rất dài. Đây là cả lỗi cổ điển của các hoạt động trên số dấu phẩy động (ví dụ: chia cho 0) và lỗi khi làm việc với bộ nhớ (đọc hoặc ghi bên ngoài không gian địa chỉ quy trình, truy cập vào các trang được bảo vệ, ghi vào vùng nhớ chỉ đọc), ngăn xếp tràn do đệ quy vô hạn, v.v. Trong những trường hợp này, ngoại lệ phần cứng hoặc ngoại lệ hệ điều hành được ném ra.

Các lỗi tiềm ẩn bao gồm nhiều trường hợp lọc không đủ dữ liệu đầu vào, thiếu xác thực các giá trị con trỏ, v.v. Những thiếu sót như vậy chỉ dẫn đến những tình huống ngoại lệ trong một số trường hợp nhất định.

Các lỗi triển khai cũng có thể được tìm thấy trong các thành phần bên ngoài được ứng dụng sử dụng. Ví dụ, trong các thư viện động cung cấp các chức năng cần thiết hoặc các mô-đun bổ trợ. Mã chương trình được tải ngầm vào không gian địa chỉ của một tiến trình (ví dụ: để chặn các hàm API nhất định) cũng có thể khiến chương trình gặp sự cố.

Nhiều thành phần và thư viện (ví dụ: ADO trên Windows) sử dụng cơ chế ngoại lệ theo chương trình làm ưu tiên cho việc báo cáo lỗi. Việc loại ứng dụng này không có hoặc xử lý không đầy đủ các ngoại lệ có thể dẫn đến sự cố của ứng dụng ngay cả trong những tình huống hoàn toàn vô hại (chẳng hạn như mất kết nối với cơ sở dữ liệu).

Đề xuất: