Tìm trong:Webe-CHÍP

Bộ gõ (kiểu Vni/Telex/Viqr)Tắt (Alt+T)Mở (Alt+M)

 
Trang chủ QUÁN LẬP TRÌNH  
Xử lý lỗi ngoại lệ
Để triển khai chương trình Slide Show một cách chuyên nghiệp, bạn cần chú ý việc xử lý lỗi. Bạn rất dễ phát hiện lỗi lúc biên dịch (static error, compile-time error) và chỉnh sửa nhanh chóng. Nhưng việc phát hiện lỗi và xử lý lỗi trong lúc chạy chương trình (run-time error) thì khó hơn, đòi hỏi nhiều kinh nghiệm.
Lỗi lúc chạy có thể là lỗi chia cho không (zero), lỗi truy xuất phần tử mảng vượt giới hạn, lỗi khi mở tập tin, lỗi truy xuất cơ sở dữ liệu không hợp lệ,... Nếu bạn không bẫy được lỗi lúc chạy, để hệ thống hiển thị thông báo lỗi, người dùng không hiểu được thông báo lỗi đó, sẽ đánh giá thấp chương trình của bạn, cho rằng chương trình không xử lý được hết các tình huống xảy ra. Tệ hơn, chương trình bị lỗi lúc chạy có thể kết thúc đột ngột do một số tài nguyên chương trình sử dụng chưa trả lại cho hệ thống, dẫn đến tình trạng bộ nhớ bị cạn kiệt (memory leakage).
May mắn thay, các ngôn ngữ lập trình như C++, Java, C#, VB.NET, Delphi đều có các kỹ thuật để xử lý lỗi lúc chạy chương trình. Ta dùng các kỹ thuật xử lý lỗi để xử lý các tình huống ngoại lệ khi hàm/phương thức không thể hoàn thành hoặc để xử lý các tình huống khi hàm/phương thức không thể điều khiển trực tiếp các ngoại lệ. Trong các dự án phần mếm lớn, ta rất cần kiểm soát lỗi theo một quy ước thống nhất.
Trong Java, để bẫy lỗi, ta dùng cú pháp sau:
try
{
//câu lệnh có thể gây lỗi
}
catch(exceptiontype e)
{
//xử lý các lỗi
}

Bạn nên đặt phần mã có thể gây ra lỗi bên trong câu lệnh try. Một câu lệnh try có thể có nhiều câu lệnh catch, tùy thuộc vào nhu cầu bẫy lỗi của bạn. Java cung cấp sẵn lớp Exception và nhiều lớp con của Exception diễn đạt các lỗi lúc chạy thường gặp như: ClassNotFoundException, ArithmeticException,... Bạn lưu ý, trình biên dịch Java không cho phép để câu lệnh catch(Exception e) trước các câu lệnh catch khác. Điều này hợp lý vì nếu làm như vậy thì các câu lệnh catch sau catch(Exception e) sẽ không bao giờ bẫy được lỗi vì tất cả các lỗi ngoại lệ đều thuộc về lớp Exception.

LÊ TRỌNG NHÂN (NIIT Faculty)

Đầu trang