Bài 24: Khái niệm biệt lệ trong Java
1. Xử lý biệt lệ:
Mục đích của công nghệ phần mềm là: Xây dựng các module phần mềm tốt, đảm bảo chúng làm việc được trong mọi tình huống và dễ dàng thích ứng với mọi điều kiện. Muốn đảm bảo hệ thống có những tính chất trên thì phải có cơ chế để xử lý được tất cả các ngoại lệ, các tính huống liên quan đến phạm vi xác định của các phần tử trong các cấu trúc dữ liệu.
Một ngoại lệ (exception) trong chương trình Java là dấu hiệu chỉ ra rằng có sự xuất hiện một sự hoạt động không bình thường nào đó. Ví dụ chương trình yêu cầu dữ liệu từ một tệp mà tệp đó lại không có trên local hay không được import, hay chỉ số của các phần tử mảng vượt quá phạm vi xác định, … Vấn đề kiểm soát tất cả ngoại lệ rất phức tạp, nhàm chán và rất nhiều thời gian. Java cung cấp một cơ chế để kiểm tra một cách có hệ thống các ngoại lệ. Để xử lý ngoại trong Java, chúng ta sử dụng khối lệnh try … catch … finally để thực hiện điều trên.
2. Phân loại lỗi:
Có 3 loại lỗi thường gặp:
- Lỗi khi biên dịch, hay lỗi sai cú pháp
- Lỗi khi runtime, hay lỗi trong quá trình thực thi chương trình
- Lỗi logic, hay lỗi sai nghiệp vụ phần mềm
2.1. Lỗi biên dịch (Complier error)
- Lỗi biên dịch là dạng lỗi xảy ra trong quá trình viết mã nguồn chương trình (coding)
- Với các IDE như Eclipse thì khi ta gõ sai cú pháp thì ngay lập tức cảnh báo lỗi là các đường gạch chân màu đỏ xuất hiện tại vị trí lỗi sai. Ví dụ từ khóa để khai báo kiểu dữ liệu số nguyên là int, những ta viết sai thành INT.
Một số dạng lỗi điển hình trong lỗi biên dịch như:
- Lỗi cú pháp: Viết sai mã cú pháp. Sai nhiều nhất là thiếu dấu CHẤM PHẨY
- Lỗi thiếu ngoặc { và }, ()
- Lỗi vượt mức phạm vi truy cập (chưa được học)
2.2. Lỗi thực thi (Runtime error)
- Là dạng lỗi xảy ra khi trong quá trình thưc thi chương trình
- Ví dụ như chương trình xử lý chậm so với khả năng thực tế, bị treo, dừng lại đột ngột, và LỖI CHIA KHÔNG
Một số dạng lỗi điển hình trong lỗi thực thi như:
- Lỗi không đoán trước như nguồn điện không liên tục, đường truyền mạng không ổn định với các ứng dụng cần sử dụng mạng
- Lỗi tràn bộ nhớ, bộ nhớ như RAM hoạt động ngoài khả năng lưu trữ
- Lỗi liên kết các file thư viện, file chức năng khác
- Lỗi đường dẫn
- Lỗi sai định dạng file
- …
2.3. Lỗi logic (logic error)
- Là dạng lỗi xảy ra khi cách thức hoạt động của chức năng hay phần mềm không đúng như phân tích nghiệp vụ đề ra
- Ví dụ như yêu cầu nghiệp vụ có chức năng thống kê các bạn học sinh có điểm trung bình trên 8.5. Nhưng kết quả thống kê thực tế lại trả về danh sách các bạn học sinh là nam, …
Một số dạng lỗi điển hình trong lỗi thực thi như:
- Không đúng yêu cầu, chức năng của các thành phần trên giao diện. Ví dụ: chọn đáp án 1 trong 4 câu trả lời nhưng lại sử dụng checkbox
- Lỗi không bảo mật thông tin như mật khẩu không mã hóa, số điện thoại không được kiểm tra, …
- Các công thức tính toán như tiền lương, tiền hóa đơn (có khuyến mại)
- Lỗi không kiểm soát đường dẫn
- Lỗi không kiểm tra định dạng file
- Biết lỗi nhưng không sửa (Unchecked error)
- …