Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Обработка ошибок MySQLi [2]
Форумы портала PHP.SU » » Объектно-ориентированное программирование » Обработка ошибок MySQLi

Страниц (2): « 1 [2]
 

16. _Dark_ - 07 Февраля, 2013 - 20:06:53 - перейти к сообщению
DelphinPRO пишет:
ну вы можете еще сделать так

О, а это уже интересней, спасибо!

DelphinPRO пишет:
Я немного скомканно объясняю , лучше умную статью почитать, чтобы понять принцип работы исключений, способы их применения и полезность

Нет, нет, "умные" статьи как раз не очень объясняют суть, вот у меня сейчас после этого вашего сообщения с примером что-то прояснятся начало Улыбка
17. esterio - 07 Февраля, 2013 - 20:13:46 - перейти к сообщению
Кстати
http://www.php.net/manual/ru/lan...e.exceptions.php
Цитата:
В PHP 5.5 и более поздних версиях также можно использовать блок finally после блока catch. Код в блоке finally всегда будет выполняться после кода в блоках try и catch, вне зависимости было ли брошено исключение или нет, перед тем как продолжится нормальное выполнение кода. whether an exception has been thrown, and before normal execution resumes.



Ето очен радует
18. etoYA - 07 Февраля, 2013 - 21:59:44 - перейти к сообщению
Методов уйма

PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3. class ErrorController extends Exception{
  4.         private $error;
  5.        
  6.         public function __construct($error){
  7.                 $this->error = $error;
  8.                 switch ($this->error){
  9.                         case '404':
  10.                                 $this->error = 'Ошибка 404';
  11.                                 break;
  12.                         case 'db':
  13.                                 $this->error = mysqli()->error;
  14.                                 break;
  15.                 }
  16.         }
  17.         public function __toString(){
  18.                 return $this->error;
  19.         }
  20. }
  21. ?>
  22.  
19. _Dark_ - 08 Февраля, 2013 - 15:29:24 - перейти к сообщению
Нашел отличные статьи на Хабре, в общем, кажется что-то понял с этими исключениями.
etoYA пишет:
Методов уйма

Как я понял, класс-наследник исключения пустым должен быть, он нужен только для определения типа исключения, логики там быть не должно. Или это не так?
20. DelphinPRO - 08 Февраля, 2013 - 16:47:15 - перейти к сообщению
_Dark_ пишет:
Как я понял, класс-наследник исключения пустым должен быть, он нужен только для определения типа исключения, логики там быть не должно. Или это не так?

не обязательно. иногда удобно логику засунуть в наследника \Exception
например, логирование ошибок.
или переопределить __construct для передачи в исключение нужных вам параметров.
+ иногда удобно переопределить магический метод __toString
в общем это решается в каждом отдельном случае индивидуально.
Категорично говорить "логики там быть не должно" нельзя.
21. _Dark_ - 09 Февраля, 2013 - 20:05:30 - перейти к сообщению
DelphinPRO пишет:
_Dark_ пишет:
Как я понял, класс-наследник исключения пустым должен быть, он нужен только для определения типа исключения, логики там быть не должно. Или это не так?

не обязательно. иногда удобно логику засунуть в наследника \Exception
например, логирование ошибок.
или переопределить __construct для передачи в исключение нужных вам параметров.
+ иногда удобно переопределить магический метод __toString
в общем это решается в каждом отдельном случае индивидуально.
Категорично говорить "логики там быть не должно" нельзя.

Ясно, спасибо, стало гораздо понятней! Улыбка

 

Powered by ExBB FM 1.0 RC1