minhtruc
09-07-2007, 11:55 AM
Một cách giải quyết khi có lỗi sai xảy ra trong ứng dụng mà không làm cho người sử dụng lúng túng.
Nhân thắc mắc của một bạn trên diễn đàn dot.net.vn, tôi có trao đổi hướng giải quyết của mình và bây giờ post lại lên 4rum này cho các bạn tham khảo:
Thông thường khi viết code programmer thường có những đọan lệnh bẫy lỗi, ví dụ như trong C# đọan bẫy lỗi thường dùng là:
try {}
catch(Exception ex)
{
MessageBox.Show(ex.Message);
}
Nếu xảy ra lỗi thì sẽ có một thông báo về lỗi hiện lên và dĩ nhiên nó sẽ là tiếng Anh; do đó khi xuất hiện lỗi người sử dụng không biết chuyện gì xảy ra có thể làm họ hoang mang, không tin tưởng vào chương trình đang sử dụng ... Làm sao giải quyết được việc này ?
Vấn đề này là nỗi niềm của hầu hết lập trình viên mới vào nghề, với lập trình viên kinh nghiệm thì hầu như đều có cách giải quyết riêng; nhân topic này tôi chia sẻ với mọi người giải pháp mà tôi thường dùng :
dùng 1 table trong CSDL để chứa các thông báo lỗi, table này gồm một số field để lưu giữ : thông báo lỗi, thời gian lỗi sai xảy ra, địa chỉ IP của máy phát sinh lỗi, tên program gây ra lỗi, câu lệnh gây ra lỗi,. . . . Viết một Stored Procrdure để Insert mẫu tin mới vào table này mỗi khi có lỗi sai xảy ra, còn câu thông báo lỗi xuất hiện ra màn hình cho người sử dụng thì là một câu cố dịnh bằng tiếng Việt, như thế thì dạng lệnh của bạn có thể thay đổi lại như sau :
try {}
catch (Exception ex)
{
// gọi thực hiện Stored procedure để insert 1 record mới vào
// table chứa lỗi sai
MessageBox.Show("Chương trình gặp sự cố, bạn hãy báo cho Admin để có hướng giải quyết");
return;
}
như thế bạn chỉ cần theo dõi table chứa thông báo lỗi là có thể chỉnh sửa hòan thiện lại hệ thống chương trình của mình.
Đây là cách mà tôi hiện nay vẫn đang dùng, bạn nào có cách làm khác hay ý tưởng gì chia sẻ cho anh em cùng học hỏi.
Nhân thắc mắc của một bạn trên diễn đàn dot.net.vn, tôi có trao đổi hướng giải quyết của mình và bây giờ post lại lên 4rum này cho các bạn tham khảo:
Thông thường khi viết code programmer thường có những đọan lệnh bẫy lỗi, ví dụ như trong C# đọan bẫy lỗi thường dùng là:
try {}
catch(Exception ex)
{
MessageBox.Show(ex.Message);
}
Nếu xảy ra lỗi thì sẽ có một thông báo về lỗi hiện lên và dĩ nhiên nó sẽ là tiếng Anh; do đó khi xuất hiện lỗi người sử dụng không biết chuyện gì xảy ra có thể làm họ hoang mang, không tin tưởng vào chương trình đang sử dụng ... Làm sao giải quyết được việc này ?
Vấn đề này là nỗi niềm của hầu hết lập trình viên mới vào nghề, với lập trình viên kinh nghiệm thì hầu như đều có cách giải quyết riêng; nhân topic này tôi chia sẻ với mọi người giải pháp mà tôi thường dùng :
dùng 1 table trong CSDL để chứa các thông báo lỗi, table này gồm một số field để lưu giữ : thông báo lỗi, thời gian lỗi sai xảy ra, địa chỉ IP của máy phát sinh lỗi, tên program gây ra lỗi, câu lệnh gây ra lỗi,. . . . Viết một Stored Procrdure để Insert mẫu tin mới vào table này mỗi khi có lỗi sai xảy ra, còn câu thông báo lỗi xuất hiện ra màn hình cho người sử dụng thì là một câu cố dịnh bằng tiếng Việt, như thế thì dạng lệnh của bạn có thể thay đổi lại như sau :
try {}
catch (Exception ex)
{
// gọi thực hiện Stored procedure để insert 1 record mới vào
// table chứa lỗi sai
MessageBox.Show("Chương trình gặp sự cố, bạn hãy báo cho Admin để có hướng giải quyết");
return;
}
như thế bạn chỉ cần theo dõi table chứa thông báo lỗi là có thể chỉnh sửa hòan thiện lại hệ thống chương trình của mình.
Đây là cách mà tôi hiện nay vẫn đang dùng, bạn nào có cách làm khác hay ý tưởng gì chia sẻ cho anh em cùng học hỏi.