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

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Exception, никак не дойдет!

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


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

> Без описания
dubasua
Отправлено: 17 Июня, 2013 - 00:15:00
Post Id



Посетитель


Покинул форум
Сообщений всего: 454
Дата рег-ции: Апр. 2012  


Помог: 7 раз(а)




Доброго времени суток.
Мне исключения поперек горла, я их не недолюбливаю, так как не могу их юзать по инструкции.
В общем, есть кусок кода
PHP:
скопировать код в буфер обмена
  1. class MyException extends \Exception {}
  2.  
  3. class Factory {
  4.    static public function run ( $function, $args ){
  5.       if ( !is_callable ( $function ) )
  6.          throw new MyException ( "Не могу выполнить  '{$function}'");
  7.       }
  8.       return call_user_func ( $function );
  9.    }
  10. }//end class Factory
  11.  
  12. try {
  13.    Factory::run( 'SomeFunction', array() );
  14.    //еще полезный код
  15. } catch ( MyException $e ) {
  16.    echo $e->getMessage();
  17. }
  18.  

По моим предрассудкам, если выполнить блок try{} с несуществующей 'SomeFunction', должно выехать сообщение "Не могу выполнить 'SomeFunction", приостановить выполнение все что в блоке try{} и продолжить работу.
Так почему же он выдает ошибку "Fatal error: Uncaught exception ..."

(Отредактировано автором: 17 Июня, 2013 - 00:16:28)

 
 Top
AlexAnder
Отправлено: 17 Июня, 2013 - 06:57:52
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 915
Дата рег-ции: Авг. 2012  
Откуда: Россия


Помог: 34 раз(а)




Цитата:
static public function run ( $function, $args ){
if ( !is_callable ( $function ) )
throw new MyException ( "Не могу выполнить '{$function}'");
}
return call_user_func ( $function );
}

(Добавление)
Спойлер (Отобразить)



Цитата:
"Fatal error: Uncaught exception 'MyException' with message ' Немогу выполнить SomeFuction ' in ....."

печалька конечно, я полностью скопировал твой код, добавил фигурную скобку и всё ок

без скобки:
Цитата:
Parse error: syntax error, unexpected T_RETURN, expecting T_FUNCTION in file.php on line 9

(Отредактировано автором: 17 Июня, 2013 - 08:30:07)



-----
Оказывается, недостаточно читать справочники, чтобы правильно писать коды. sadex ©

Форумы стали местом обучения программированию, а не решения трудных вопросов. KingStar ©
 
 Top
dubasua
Отправлено: 17 Июня, 2013 - 08:23:44
Post Id



Посетитель


Покинул форум
Сообщений всего: 454
Дата рег-ции: Апр. 2012  


Помог: 7 раз(а)




Нет, Во так
"Fatal error: Uncaught exception 'MyException' with message ' Немогу выполнить SomeFuction ' in ....."
(Добавление)
У меня все раскидано в разных файлах, я сюда в форму вручную писал, по синтаксису код проходит.
 
 Top
DelphinPRO
Отправлено: 17 Июня, 2013 - 08:43:19
Post Id



Активный участник


Покинул форум
Сообщений всего: 7187
Дата рег-ции: Февр. 2012  


Помог: 353 раз(а)




здесь приведенный код работает правильно (за исключением фигурных скобок Улыбка )
---
dubasua пишет:
Fatal error: Uncaught exception 'MyException' with message ' Немогу выполнить SomeFuction '

Судя по сообщению - исключение выбрасывается, но не перехватывается.
dubasua пишет:
У меня все раскидано в разных файлах

видимо, напутали вы там, в своих файлах.


-----
Чем больше узнаю, тем больше я не знаю.
 
 Top
dubasua
Отправлено: 17 Июня, 2013 - 13:56:13
Post Id



Посетитель


Покинул форум
Сообщений всего: 454
Дата рег-ции: Апр. 2012  


Помог: 7 раз(а)




Нашел! Извините уважаемые форумчане, что ввел Вас в заблуждение, Как оказалось, я правил не тот кусок кода Улыбка. Это все наверное из сумасшедшего солнцестояния, сутки потратил на поиск ошибки, которой нет. Всем спасибо.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Объектно-ориентированное программирование »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB