Các thao tác xử lý lỗi trong quá trình lập trình NukeViet 4.x

Thứ năm - 30/04/2015 08:34

Các thao tác xử lý lỗi trong quá trình lập trình NukeViet 4.x

Lập trình luôn đi đôi với lỗi, tìm lỗi và sửa lỗi. Lập trình trên NukeViet cũng không ngoại lệ. Nhưng xử lý lỗi ra sao, như thế nào cho tiện, cho nhanh thì người lập trình phải tự tích lũy kinh nghiệm và mỗi người có một cách sửa lỗi khác nhau. Dưới đây tôi xin trình bày theo kinh nghiệm làm việc của tôi.
Những chỉ mục dưới đây chỉ áp dụng trong trường hợp lập trình (nhằm mục đích lập trình dễ, hạn chế phát sinh lỗi), còn trong trường hợp chạy thực tế, bạn nên khôi phục những hướng dẫn bên dưới về lại code mặc định.

1. Luôn hiển thị các dòng báo lỗi cảnh báo - Thông báo từ hệ thống.

 
Selection 243

Chắc hẳn trong quá trình lập trình NukeViet (lập trình hệ thống, module, theme,.....) hay trong quá trình sử dụng, ít nhiều gì người dùng cũng thấy những dòng cảnh báo như thế này. Lỗi cảnh báo này xuất hiện có lỗi logic xảy ra ở code, song không làm ảnh hưởng đến các đoạn mã khác, được hệ thống hiển thị nhắc nhở người dùng về tính đúng đắn của đoạn mã đó.
Trong NukeViet, những dòng thông báo lỗi này chỉ được hiển thị một lần, sau đó dấu đi bằng cách ghi vào cache (khi xóa cache - dọn dẹp hệ thống thì sẽ thấy lại nếu chưa được sửa lỗi), cứ như thế người lập trình sẽ không xem được các dòng lỗi một cách liên tiếp. Các bước dưới đây sẽ bỏ đi giai đoạn ghi lỗi vào bộ nhớ đệm, nên những dòng lỗi sẽ luôn được hiển thị.

Mở includes/class/error.class.php
Tìm và xóa (hoặc comment) dòng (khoảng dòng 402)
file_put_contents( $track_errors, '', FILE_APPEND );

2. Hiển thị chi tiết lỗi khi bị các lỗi liên quan đến PHP.

Trong quá trình lập trình thao tác với CSDL, nếu có lỗi, hệ thống sẽ không hiển thị thông báo lỗi mà hiển thị nền trang trắng.
Hướng dẫn dưới đây giúp hiển thị thông báo lỗi của php, khi có sự cố xảy ra.


Mở includes/mainfile.php
Tìm và xóa (hoặc comment) những đoạn code

error_reporting(0);

và....

$ErrorHandler = new NukeViet\Core\Error($global_config);
set_error_handler(array(
    &$ErrorHandler,
    'error_handler'
));


Lưu ý: Khi đưa vào chạy thực tế, hãy khôi phục những đoạn mã này về mặc định

3. Hiển thị chi tiết lỗi liên quan đến CSDL

Hãy đặt đoạn code (hoặc toàn bộ code) nghi phát sinh lỗi vào khối lệnh try catch
try
{
	// Đặt code vào đây....
	$db->query( '' );
}
catch( PDOException $e )
{
	die( $e->getMessage( ) );
}

Chú ý: Việc đăng lại bài viết này trên ở website hoặc các phương tiện truyền thông khác mà không ghi rõ nguồn http://mynukeviet.net - Trung tâm ứng dụng NukeViet là vi phạm bản quyền.

Tổng số điểm của bài viết là: 5 trong 1 đánh giá

Xếp hạng: 5 - 1 phiếu bầu
Click để đánh giá bài viết

  Ý kiến bạn đọc

Trung tâm ứng dụng NukeViet
Ghi rõ nguồn khi sao chép thông tin từ website này.

Powered by NukeViet - a product of VINADES.,JSC