Tài liệu chính thức là nơi tốt để bắt đầu - http://php.net/manual/en/language.exceptions.php.
Nếu đó chỉ là một thông báo mà bạn muốn chụp, bạn sẽ làm điều đó theo các bước sau;
try{
throw new Exception("This is your error message");
}catch(Exception $e){
print $e->getMessage();
}
Nếu bạn muốn chụp các lỗi cụ thể mà bạn sẽ sử dụng:
try{
throw new SQLException("SQL error message");
}catch(SQLException $e){
print "SQL Error: ".$e->getMessage();
}catch(Exception $e){
print "Error: ".$e->getMessage();
}
Đối với hồ sơ - bạn cần phải xác định SQLException
. Điều này có thể được thực hiện đơn giản như:
class SQLException extends Exception{
}
Đối với một danh hiệu và thông điệp của bạn sẽ mở rộng các lớp Exception
:
class CustomException extends Exception{
protected $title;
public function __construct($title, $message, $code = 0, Exception $previous = null) {
$this->title = $title;
parent::__construct($message, $code, $previous);
}
public function getTitle(){
return $this->title;
}
}
Bạn có thể gọi này bằng:
try{
throw new CustomException("My Title", "My error message");
}catch(CustomException $e){
print $e->getTitle()."<br />".$e->getMessage();
}
Nguồn
2011-01-19 09:19:44
Cảm ơn bạn, câu trả lời này là tuyệt vời. Với ví dụ này trong tâm trí, nếu tôi muốn vượt qua cùng một tiêu đề cũng như chỉ là thông điệp với ngoại lệ làm thế nào tôi sẽ làm điều đó? – Hailwood
W3Schools không thuộc sở hữu của W3C và thực sự là tài nguyên kém, hãy xem http://w3fools.com để biết thông tin – BoltClock
Xin lỗi, tôi đã bỏ lỡ phần 'trường học'. Tuy nhiên tôi đã nghĩ rằng hướng dẫn của họ về xử lý ngoại lệ là một giới thiệu đủ phong nha nhưng tôi sẽ chỉnh sửa và thay đổi thành tài liệu chính thức, để nhất quán. –