Я хочу сам обрабатывать исключения в моем приложении php.
Когда я бросаю исключение, я хочу передать название, которое будет использоваться на странице с ошибкой.
Может ли кто-нибудь связать меня с хорошим учебным пособием или написать четкое объяснение того, как работает обработка исключений (например, как узнать, какое исключение вы занимаетесь с помощью ect.
Официальные документы – это хорошее место для начала – http://php.net/manual/en/language.exceptions.php .
Если это просто сообщение, которое вы хотите захватить, вы бы сделали это в следующем;
try{ throw new Exception("This is your error message"); }catch(Exception $e){ print $e->getMessage(); }
Если вы хотите зафиксировать определенные ошибки, вы должны использовать:
try{ throw new SQLException("SQL error message"); }catch(SQLException $e){ print "SQL Error: ".$e->getMessage(); }catch(Exception $e){ print "Error: ".$e->getMessage(); }
Для записи – вам нужно определить SQLException
. Это можно сделать так же, как:
class SQLException extends Exception{ }
Для заголовка и сообщения вы должны расширить класс 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; } }
Вы можете использовать это:
try{ throw new CustomException("My Title", "My error message"); }catch(CustomException $e){ print $e->getTitle()."<br />".$e->getMessage(); }
Во-первых, я бы рекомендовал взглянуть на соответствующую страницу руководства PHP , это отличное место для начала. Кроме того, вы можете взглянуть на страницу « Расширение исключений» – есть дополнительная информация о стандартном классе исключений и пример реализации пользовательских исключений.
Если вопрос заключается в том, как сделать какое-то конкретное действие, если было выбрано исключение конкретного типа, вам просто нужно указать тип исключения в выводе catch:
try { //do some actions, which may throw exception } catch (MyException $e) { // Specific exception - do something with it // (access specific fields, if necessary) } catch (Exception $e) { // General exception - log exception details // and show user some general error message }
Попробуйте это как первое, что нужно на вашей php-странице.
Он фиксирует ошибки и исключения php.
function php_error($input, $msg = '', $file = '', $line = '', $context = '') { if (error_reporting() == 0) return; if (is_object($input)) { echo "<strong>PHP EXCEPTION: </strong>"; h_print($input); $title = 'PHP Exception'; $error = 'Exception'; $code = null; } else { if ($input == E_STRICT) return; if ($input != E_ERROR) return; $title = 'PHP Error'; $error = $msg.' in <strong>'.$file.'</strong> on <strong>line '.$line.'</strong>.'; $code = null; } debug($title, $error, $code); } set_error_handler('php_error'); set_exception_handler('php_error');
вы можете путешествовать по php.net и w3-школам для получения базовых знаний, а также попробовать эту ссылку:
http://ralphschindler.com/2010/09/15/exception-best-practices-in-php-5-3