2013-06-04 2 views
0

Я пытаюсь обработать эту ошибку соединения более грациозным способом, чем API по умолчанию. API по умолчанию напечатает сообщение об ошибке, но я хотел бы его подавить и каким-то образом заменить его собственным, распознать ошибку и обработать ее, но я не знаю, как это сделать.phpseclib: как правильно обрабатывать ошибку соединения при создании объекта New_SFTP

public function __construct($host) 
{ 
     // trying to test by opening a failed connection -- try catch 
     // block doesn't work because no exception thrown 
     $this->connection = new Net_SFTP("nonexistent.domain.com"); 

     // this will not work either .... 
     if (!$this->connection->status_codes) 
     { 
     throw new Exception("Could not create SFTP connection.\n"); 
     } 

     else 
     { 
     echo "Connected via SFTP to " . $host . " on port 22.\n"; 
     } 
} 

Исполнительное это покажет, что, несмотря на то, есть ошибка, она попадает в еще блок:

PHP Notice: Cannot connect to nonexistent.domain.com. Error 0. php_network_getaddresses: getaddrinfo failed: Name or service not known in /home/dylan/Documents/php/Net/SSH2.php on line 788 
Connected via SFTP to gluon.exavault.com on port 22. 

Я оглядывая класс в файле Net/SFTP.php, но я могу» t, похоже, найти способ обработки кода ошибки и игнорировать сообщение об ошибке. Есть ли у кого-нибудь идеи по другому возможному решению?

ответ

1

Извините, неправильно прочитано.

Вы можете установить error_reporting(E_ALL^E_NOTICE)

+0

Спасибо, я был в состоянии понять, как подавить сообщение об ошибке, и в настоящее время работает. Но я все равно хотел бы обработать ошибку на моем конце, как показано выше (или, возможно, с помощью блока try-catch). Я думаю, мне, возможно, придется найти способ проверить состояние сообщения об ошибке из экземпляра «Net_SFTP», но пока я не знаю, как это сделать. – dtg

+0

См. Http://php.net/set-error-handler – neubert

 Смежные вопросы

  • Нет связанных вопросов^_^