【发布时间】:2018-09-13 09:34:03
【问题描述】:
我正在编写一个套接字客户端,它连接到服务器并进行一些接口,获取结果并关闭。但是,有时该服务器可能已关闭或不可用,我想向我的用户显示一个漂亮的屏幕,显示系统当前已关闭。
我将如何处理它而不是让它发出所有这些警告?我认为 try/catch 不起作用,因为它实际上并没有引发异常。
我阅读了几十个答案,但它们都涉及一个全局警告处理程序,我不能使用它有两个原因:我想知道出了什么问题,而且我不想称之为无数次(通常是出错了,很多事情出错了)。
警告:socket_connect():无法连接 [10061]:由于目标机器主动拒绝,无法建立连接。在 C:\xampp\htdocs\TCPServices\Sockets.php 在第 7 行
警告:socket_write() 期望参数 1 是资源,布尔值在第 18 行的 C:\xampp\htdocs\TCPServices\Sockets.php 中给出
警告:socket_read() 期望参数 1 是资源,布尔值在第 24 行的 C:\xampp\htdocs\TCPServices\Sockets.php 中给出
警告:socket_close() 期望参数 1 是资源,布尔值在第 31 行的 C:\xampp\htdocs\TCPServices\Sockets.php 中给出
【问题讨论】:
-
使用
@抑制它们或确保它们不会发生。 -
你试过@before函数吗
-
有人可以将我链接到描述@函数的资源吗?如果你压制他们,你能检查一下之后是否建立了连接吗?
-
error_reporting(E_ALL & ~E_NOTICE & ~E_WARNING);这只会向您报告致命错误
-
你看过
socket_connect()的文档吗?出错时返回FALSE。检查其返回值,如果失败则避免执行任何操作。这将删除您列出的警告的来源。
标签: php