pfsockopen在屏幕上显示一条丑陋的错误消息,并忽略我的异常处理程序

时间:2017-02-24 09:18:48

标签: php

我试图将文档发送到打印机。这是我使用的代码:

try
        {

            $fp  = pfsockopen($ip, $port,$errno,$errstr,30);
            fputs($fp, $sContent);
            fclose($fp);

            $this->session->set_flashdata('message_header','Document verstuurd');
            $this->session->set_flashdata('message_status','info');
            $this->session->set_flashdata('message', 'Uw document is verstuurd naar de printer');
            $this->redirect('/goods_receipt/history');


        }
        catch (Exception $e) 
        {
            $this->session->set_flashdata('message',$e->getMessage());
            $this->session->set_flashdata('message_status','danger');
            $this->session->set_flashdata('message_header', 'Er is een fout opgetreden');
            $this->redirect('/goods_receipt/history');
        }

傻老了我忘了设置IP地址。我本来期望一个例外,然后显示flash消息,但我的客户看到了这个:

enter image description here

我做错了什么?

p.s。:请注意我不需要任何帮助来找出错误被抛出的原因。我已经解决了这个问题。我只需要理解为什么异常处理程序被忽略,以便下次无法打开套接字时,会显示一个相当不太可怕的屏幕。

1 个答案:

答案 0 :(得分:1)

pfsockopen只是在发生错误时返回false并且没有抛出错误。 http://php.net/manual/de/function.fsockopen.php

做类似

的事情
if($fp===false){
 throw new Exception('Less Scary Message');
}