Trang chủ » Diễn Đàn » Lập trình và Phát triển Web » Phát triển web » hỏi cách bẫy lỗi trong php
Chủ đề đã bị khóa, bạn không thể xóa, sửa hay trả lời trong chủ đề này!
|
|
|---|
|
0
Trước giờ mình cũng có xem qua nhưng không chú ý lắm về phần này, hôm nay vô tình bị 1 trường hợp cần phải bẫy lỗi nên lật đật xem lại nhưng cũng ko hiểu nỗi nhờ mọi người help. Vấn đề là mình có 1 đoạn code mẫu sau:
<?php try { for ($i = 1; $i <=20; $i++) { echo $i . '<br />'; if ($i == 10) { $haha->hoho("hehe"); } } } catch (Exception $e) { echo $e->getLine(); } ?> Nhưng khi tới $i bằng 10 thì nó báo lỗi và ngưng luôn vòng lặp, mình ko biết bẫy như thế nào để khi $i == 10 nếu có lỗi thì nó bỏ qua và chạy tiếp cho đến khi $i=20. |
|
|
|
0
Exception thì bắt được chứ lỗi thì chưa chắc lúc nào cũng được. Mà khi có lỗi thế nào nó cũng báo ra màn hình hoặc trong log file. Bạn coi thử nó là lỗi gì!
---------
NBThanh Tutorial Room, cập nhật thường xuyên bài viết mới. Các bài viết mới cập nhật: - PHP - Lưu nội dung file ảnh vào CSDL NEW! - Làm việc với CSDL MySQL trong PHP - Học PHP qua ví dụ - Gởi email text, HTML, tiếng việt Unicode - Học PHP qua ví dụ - 1 chương trình download manager/giấu đường dẫn download - Học PHP qua ví dụ - Làm việc với Cookie và Session |
|
|
|
0
Ý e là trong quá trình chạy từ 1-20, có thể có (hoặc ko có) lỗi ở $haha->hoho("hehe"); (lỗi ở đây báo là $hâha ko phải là 1 đối tượng) .. nhưng mặc định nếu có lỗi thì nó stop luôn vòng lặp và show error ra ngoài, bây giờ e muốn nếu có lỗi thì làm ngơ đi, và tiếp tục chạy tiếp cho đến hết vòng lặp
|
|
|
|
0
Ý e là trong quá trình chạy từ 1-20, có thể có (hoặc ko có) lỗi ở $haha->hoho("hehe"); (lỗi ở đây báo là $hâha ko phải là 1 đối tượng) .. nhưng mặc định nếu có lỗi thì nó stop luôn vòng lặp và show error ra ngoài, bây giờ e muốn nếu có lỗi thì làm ngơ đi, và tiếp tục chạy tiếp cho đến hết vòng lặp Có nhiều lỗi không thể bắt được. Bạn phải tự kiểm tra, ví dụ như biến của bạn không phải là đối tượng thì trước khi gọi hàm của nó bạn phải kiểm tra xem nó là đối tượng hay không rồi mới gọi. ------------------------------------------"Share with all, All will share"! ShareLib tạm thời đóng cửa để nâng cấp. Rất mong các bạn thông cảm! |
|
|
|
0
Ban mình đầu tính làm như thế, nhưng làm xong thì nhìn lại ko thấy hợp lý chút nào, vì khi hàm đó chạy xong thì ko phải chỉ có 1 đối tượng đc khởi tạo mà rất nhiều, trên chục biến .. nếu cứ if (is_object($haha)) hoài thì nhìn vào code ko có tí chuyên nghiệp nào, với lại try catch nghe nói có thể làm đc việc đó, nhưng thử hoài mà ko được gì hết.
|
|
|
|
0
Ban mình đầu tính làm như thế, nhưng làm xong thì nhìn lại ko thấy hợp lý chút nào, vì khi hàm đó chạy xong thì ko phải chỉ có 1 đối tượng đc khởi tạo mà rất nhiều, trên chục biến .. nếu cứ if (is_object($haha)) hoài thì nhìn vào code ko có tí chuyên nghiệp nào, với lại try catch nghe nói có thể làm đc việc đó, nhưng thử hoài mà ko được gì hết. Bạn nhầm rồi, không chịu kiểm tra biến cẩn thận thì mới đúng là biểu hiện của "không có tí chuyên nghiệp nào" đó bạn ;-)
---------
NBThanh Tutorial Room, cập nhật thường xuyên bài viết mới. Các bài viết mới cập nhật: - PHP - Lưu nội dung file ảnh vào CSDL NEW! - Làm việc với CSDL MySQL trong PHP - Học PHP qua ví dụ - Gởi email text, HTML, tiếng việt Unicode - Học PHP qua ví dụ - 1 chương trình download manager/giấu đường dẫn download - Học PHP qua ví dụ - Làm việc với Cookie và Session |
