我对php很新,当我在寻找如何使用套接字的例子时,我注意到它们都没有包含异常处理代码。
首先我认为也许php没有例外......但谷歌告诉我不然。有很多文章赞扬在php中使用异常(我来自Java& C#,我是一个转换过的)但是,在实例中,似乎没有人关心trys / catches。
是否因为php在以前的版本中没有例外?
示例(伪代码):
$fp = fsockopen($allTheNeededParams);
if(!$fp){
//error handling
}
fwrite($fp, $out);//<-what if something goes wrong here? the socket is never closed?
fclose($fp);
在其他语言中,当你处理套接字时,你会看到try / catch到处都是。为什么不在php?
StackOverflow的两个例子:
谢谢你的时间!
答案 0 :(得分:21)
PHP有一种以启示录为主题的错误处理方法:如果出现任何问题,脚本就会结束,并且它正在使用的任何资源(数据库连接,文件,套接字,内存)都会被运行时释放。这使得 对于处理此类问题至关重要,而不是Java或C#,其中服务器代码连续运行 - 在PHP中,未处理的错误条件意味着单个用户不方便,在Java或C#中它可能意味着资源泄漏最终会导致每个人都失去服务器。
当然,事实上PHP在其大部分功能库已经完成之后添加了异常,这意味着所有这些功能都使用返回代码和错误报告而不是异常。用异常替换错误不能在库级别完成(它会破坏过多的现有代码),而在代码级别,这是一项艰巨的任务,需要大量的样板来检测错误,同时对其进行静默,并抛出异常。 / p>
答案 1 :(得分:0)