如果套接字由于某种原因无法执行,我试图抛出一个错误。
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP) OR throw new main_excp(error_pack(3050, 'Failed (socket_create): ' . socket_strerror(socket_last_error($socket)) .'!', true));
然而,由于我收到错误,这不会起作用。
如果我使用OR die()
,脚本将在那里退出,我将无法在catch{}
内相应地处理错误。
这是怎么回事?
答案 0 :(得分:1)
socket_create()在成功时返回套接字资源,或者为FALSE 错误。可以通过调用检索实际的错误代码 socket_last_error()。此错误代码可能会传递给 socket_strerror()获取错误的文本解释。
因此,您可以检查$socket
是否有错值(使用$socket === false
)并使用函数socket_last_error()
和socket_sterror()
获取错误。