Bạn sẽ không thể trực tiếp thực hiện or throw new Exception();
vì throw
là một tuyên bố chứ không phải là một biểu thức. Vì or
thực sự là một toán tử, nó hy vọng các toán hạng của nó là các biểu thức (những thứ đánh giá một số giá trị).
Bạn sẽ phải làm điều này thay vì:
$re = mysql_query($query);
if (!$re) {
throw new Exception('Query Failed');
}
Nếu bạn đang cố gắng sử dụng các chức năng throwException()
bởi rằng PHP thủ bình luận đề xuất, như webbiedave chỉ ra những nhận xét được nói rằng bạn cần phải gọi mà chức năng thay vì throw
tuyên bố trực tiếp, như thế này:
$re = mysql_query($query) or throwException('Query Failed');
không có quy tắc trong PHP nói rằng bạn cần phải ném ngoại lệ từ một phương pháp học. Miễn là có một số cách để bắt ngoại lệ đó bạn tốt. Nếu bạn có nghĩa là bạn muốn ném ngoại lệ mà không sử dụng lớp học Exception
, tốt, bạn phải làm như vậy. Ngoại lệ là các đối tượng theo bản chất; bạn không thể ném một ngoại lệ không phải là một đối tượng (hoặc không kế thừa từ lớp Exception
).
Nếu bạn không muốn ném ngoại lệ nhưng tăng loại lỗi bạn thường thấy từ PHP (thông báo, cảnh báo và lỗi nghiêm trọng), hãy sử dụng trigger_error()
.
$re = mysql_query($query);
if (!$re) {
trigger_error('Query Failed', E_USER_ERROR);
}
"tĩnh" nghĩa là gì? – BoltClock
bởi tĩnh Tôi có nghĩa là không khởi tạo một lớp – sreejith
Tôi hy vọng rằng câu lệnh 'Truy vấn thất bại' vô dụng này chỉ là một ví dụ và thực tế bạn sẽ đặt một lỗi thực sự cùng với truy vấn –