Intereting Posts
Как вернуть true или false функцию ответа на данные ajax? Разбор HTML-таблиц через DOM Как установить eAccelerator для XAMPP на Mac OS X 10.7 Lion как реализовать прикованный выбор с использованием Mysql Php и запроса Проверить, существует ли ключ и получить соответствующее значение из массива в PHP Корзина Woocommerce добавляет дополнительные теги <p> 500 – внутренняя ошибка сервера? $ this-> input-> post () всегда возвращает FALSE, из-за нежелательного 301 Создавайте новые html-таблицы по годам, основываясь на изменении лет в порядке убывания PHP для чтения значения DB, JS для его увеличения, AJAX для сохранения в DB, ​​но почему он по умолчанию 0.0 до обновления страницы? Фильтр четкости PHP GD Как построить ACL Assertion для значения переменной в Zend Framework 2? Как преобразовать таблицу parent-child (смежность) в вложенный набор с использованием PHP и MySQL? Использование DOMDocument для извлечения из HTML-документа по классу Как мы можем изменить непрозрачность и затенение шрифта в функции imagettftext?

Обработка пользовательских исключений php

Я хочу сам обрабатывать исключения в моем приложении 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