Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/250.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/lua/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用PHPseclib捕获未处理的错误?_Php_Phpseclib - Fatal编程技术网

如何使用PHPseclib捕获未处理的错误?

如何使用PHPseclib捕获未处理的错误?,php,phpseclib,Php,Phpseclib,假设我有下面的一段代码 为了测试这一点,我更改了服务器IP以模拟错误消息。下面的IP不存在,因此未处理的异常消息是:无法连接到10.199.1.7。错误113。没有到主机的路由 这将显示一个带有PHP代码的丑陋屏幕。有可能捕捉到这个错误吗 try { $ssh = new Net_SSH2('10.199.1.7'); if (!$ssh->login('deploy', $key)) { throw new Exception("Failed

假设我有下面的一段代码

为了测试这一点,我更改了服务器IP以模拟错误消息。下面的IP不存在,因此
未处理的异常消息是:
无法连接到10.199.1.7。错误113。没有到主机的路由

这将显示一个带有PHP代码的丑陋屏幕。有可能捕捉到这个错误吗

try {
      $ssh = new Net_SSH2('10.199.1.7');        
  if (!$ssh->login('deploy', $key)) {
       throw new Exception("Failed login");
  }
} catch (Exception $e) {
     ???
}

您可以在函数调用之前使用@

浏览了图书馆

user_error('Connection closed by server', E_USER_NOTICE);
它会引发错误。您可以使用

e、 g


使用@总是一个坏主意!这就是所谓的沉默错误,这不是解决问题的方法,只是忽略它,我很难弄清楚这一点。我将如何在上面的现有代码中实现它?因此基本上将
boostrap.php
文件包含在
file.php
中,它应该可以工作吗?对用户错误的提示很好。当我看到这个问题时,我去谷歌搜索了一下,并在Github上找到了某人的分叉实现,使用的是异常,而不是SourceForge上的官方实现。我的答案100%错了,所以我把它标记为删除。感谢您的捕获和+1Np,我也首先找到了git hub版本。这正是我要找的。谢谢
// Your file.php
$ssh = new Net_SSH2('10.199.1.7');        
$ssh->login('deploy', $key);

// bootstrap.php
// This will catch all user notice errors!!!
set_error_handler ('errorHandler', E_USER_NOTICE)

function errorHandler($errno, $errstr, $errfile, $errline) {
    echo 'Error';
    // Whatever you want to do.
}