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 :: Версия для печати :: Исключения
Форумы портала PHP.SU » » Вопросы новичков » Исключения

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

1. Bio man - 20 Ноября, 2011 - 20:50:16 - перейти к сообщению
допустим в классе, в методе вызываю исключение, например
PHP:
скопировать код в буфер обмена
  1. if(strtolower($login2) == strtolower($login)) throw new loginException(4);

и потом в основном скрипте перехватываю вызов
PHP:
скопировать код в буфер обмена
  1. if($_SERVER['REQUEST_METHOD'] == 'POST') {
  2.         $check = new login();// сам обьект
  3.         try {
  4.                 $check->check($_POST['login'], $_POST['pass']);// метод где вызывается исключение
  5.         }
  6.         catch(loginException $le) {
  7.                 echo $le;
  8.         }
  9. }

вот. вопрос: если исключение сработает то код в классе будет продолжать выполнятся? или после throw new ... выполнение будет прекращено? (имеется ввиду в методе)
2. Мелкий - 20 Ноября, 2011 - 20:59:25 - перейти к сообщению
Весь код между throw и соответствующим catch будет пропущен.
3. sKaa - 20 Ноября, 2011 - 20:59:57 - перейти к сообщению
Прекращено
4. Bio man - 20 Ноября, 2011 - 21:04:36 - перейти к сообщению
login.php:
PHP:
скопировать код в буфер обмена
  1. private function validate() {
  2.         if($this->_login = '') throw new loginException(1);
  3.         elseif($this->_password = '') throw new loginException(2);
  4.         ...........
  5.         другой код
  6.         ...........
  7. }

auth.php:
PHP:
скопировать код в буфер обмена
  1. $check = new login();
  2.         try {
  3.                 $check->check($_POST['login'], $_POST['pass']);// check() вызывает validate()
  4.         }
  5.         catch(loginException $le) {
  6.                 echo $le;
  7.         }

если исключение сработает то будет выполнен "другой код"???
5. OrmaJever - 20 Ноября, 2011 - 21:10:26 - перейти к сообщению
В этом и суть исключеный. Что бы не создавать цепную реакцию (как это частенько бывает с функциями возвращающими ресурс или с любыми другими) обработка кода останавливается на месте возбуждения исключения.
6. Bio man - 20 Ноября, 2011 - 21:24:35 - перейти к сообщению
оке, понял. спасибо

 

Powered by ExBB FM 1.0 RC1