我非常新的
PHP,而我正在寻找如何使用套接字的例子我注意到没有一个包括异常处理代码.
首先我认为也许PHP没有例外…但谷歌告诉我否则.有大量的文章赞扬在PHP中使用例外(我来自Java& C#,我是一个转换),但是在真实的例子中,没有人似乎关心trys / catchches.
是因为PHP在以前的版本中没有例外吗?
示例(伪代码):
$fp = fsockopen($allTheNeededParams); if(!$fp){ //error handling } fwrite($fp,$out);//<-what if something goes wrong here? the socket is never closed? fclose($fp);
在其他语言中,您处理套接字的那一刻,您会看到尝试/捕获所有的地方.为什么不在PHP?
StackOverflow的两个例子:
> Socket question in Java(异常处理)
> Socket question in PHP(无异常处理)
谢谢你的时间!
PHP以错误处理为主旨的方法:如果出现任何问题,脚本就会结束,并且任何使用的资源(数据库连接,文件,套接字,内存)都被运行时释放.这使得处理这些问题不如Java或C#中那么重要,因为在Java或C#中,服务器代码连续运行 – 在PHP中,未处理的错误条件意味着单个用户在Java或C#中不方便,这可能意味着资源泄露最终为所有人带来服务器.
而且,当然,PHP在这个功能库的很大一部分已经设置好了之后就添加了异常,这意味着所有这些函数都使用返回代码和错误报告而不是异常.使用异常替换错误不能在库级别(它会打破现有的代码太多),而在代码级别,这是一个艰巨的任务,它涉及大量样板,以便在沉默时检测错误,并抛出异常.