Php 捕获HTTP\Exception\ConnectException并显示自定义消息

Php 捕获HTTP\Exception\ConnectException并显示自定义消息,php,laravel,Php,Laravel,我无法找到解决方法来捕获此错误并向用户显示自定义消息, 我试着在laravel中使用web3js 当我试着用这个的时候 $eth = new \IlyasDeckers\Web3PHP\Ethereum(env('WEB3_URL'), env('WEB3_PORT')); try { $eth = $eth->eth_getBalance('0x8fbb99e9e73cd62bb3adea5365ff0f9d90c9e532', $block='l

我无法找到解决方法来捕获此错误并向用户显示自定义消息, 我试着在laravel中使用web3js

当我试着用这个的时候

      $eth = new \IlyasDeckers\Web3PHP\Ethereum(env('WEB3_URL'), env('WEB3_PORT'));
     try {
        $eth = $eth->eth_getBalance('0x8fbb99e9e73cd62bb3adea5365ff0f9d90c9e532', $block='latest', $decode_hex=false);
    }

    catch(ConnectException $e) {
    echo 'Message: ' .$e->getMessage();
    exit;
   }
我遇到了无法捕捉的错误,有人能帮我吗

GuzzleHttp\Exception\ConnectException cURL错误7:无法 连接到127.0.0.1端口8545:连接被拒绝(请参阅 )


我觉得您好像没有运行以太坊节点。它正在尝试连接端口8545上的本地主机

如果正在运行节点,请检查端口

如果您没有运行节点,请设置一个节点,或者找到一个允许您连接的节点(tbh可能性要小得多)

更新

我注意到您正在捕获一个ConnectException,完全限定的类名是http\Exception\ConnectException

如果尚未使用use语句导入类名,则需要将代码更改为:

catch (\GuzzleHttp\Exception\ConnectException) {
(注意前面的反斜杠)。但是,这不是推荐的方法。最好在脚本顶部导入所有类:

use GuzzleHttp\Exception\ConnectException;

这样,您可以立即看到脚本中使用的所有类,并且您可以在整个代码中将该类称为
ConnectException

是的,我需要用一条消息警告用户。将第一行放在try块中,从那里引发异常实际上,它是下一行,当我只有第一行时,它除了初始化$eth=new\IlyasDeckers\web3ppp\Ethereum(env('WEB3_-URL')、env('WEB3_-PORT'))之外没有什么作用;印刷品(港币);;退出//Ilyadeckers\Web3HP\Ethereum对象([主机:受保护]=>127.0.0.1[端口:受保护]=>8545[版本:受保护]=>2.0[id:受保护]=>0)您是否有
使用GuzzleHttp\Exception\ConnectException在脚本的顶部?如果没有,它就不会被发现。哇:)很遗憾,我不知道,即使在多年的PHP经验之后,非常感谢,你能将它添加到你的答案中吗?所以我可以接受,它可能对将来的人有用。。