Я пытаюсь обработать эту ошибку соединения более грациозным способом, чем 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, похоже, найти способ обработки кода ошибки и игнорировать сообщение об ошибке. Есть ли у кого-нибудь идеи по другому возможному решению?
Спасибо, я был в состоянии понять, как подавить сообщение об ошибке, и в настоящее время работает. Но я все равно хотел бы обработать ошибку на моем конце, как показано выше (или, возможно, с помощью блока try-catch). Я думаю, мне, возможно, придется найти способ проверить состояние сообщения об ошибке из экземпляра «Net_SFTP», но пока я не знаю, как это сделать. – dtg
См. Http://php.net/set-error-handler – neubert