Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Как выловить ошибку fsockopen
 
 автор: p.pavluxa   (16.03.2015 в 08:45)   письмо автору
 
 

Здравствуйте. Если функция fsockopen не смогла подключиться к серверу она даёт Warning PHP.
Хотелось бы выловить его, и с функции отправить содержимое с помощью исключений.

У меня на сайте стоит обработчик всех ошибок PHP, и при получении таковой работа скрипта прекращается. В случае если сервер будет недоступен на момент отправки запроса, остановится весь код который идёт после, что бы это избежать хочу что бы моя функция выбрасывала исключение.

Пример:

$this->socet = @fsockopen( $this->sProxyIP, 1, $erorno, $errormsg, ($this->timeout_second+$this->timeout_msecond/7000) ) or throw new Exception( .... );


Как сделать?

  Ответить  
 
 автор: Igorek   (24.03.2015 в 16:27)   письмо автору
 
   для: p.pavluxa   (16.03.2015 в 08:45)
 

Думаю проблема здесь именно в обработчике ошибок.
Варнинг есть в первую очередь предупреждение. Как говорится: и с варнингами живут. Зачем прерывать скрипт, если у нас всего лишь варнинг? Варнинги не надо игнорировать вообще, а записывать в лог, что такое безобразие имело место быть, чтобы потом проанализировав логи можно было бы решить, что с ними дальше делать.


$this->socet

надеюсь это опечатка ))

  Ответить  
 
 автор: Igorek   (24.03.2015 в 16:48)   письмо автору
 
   для: Igorek   (24.03.2015 в 16:27)
 

да, кстати.
при использовании оператора управления ошибками (знак @) функция, 
определенная в set_error_handler() все равно будет вызвана, но функция error_reporting() 
в этом случае вернет 0, чем и можно пользоваться для прекращения работы или определения
 другого поведения своего обработчика ошибок.

линк

т.е. так можно понять, что эту ошибку мы специально с помощью собачки заглушили и можно ничего не делать, тогда скрипт продолжит работу и вы получите свое исключение

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования