gpt4 book ai didi

php - PHP 中的异常...为什么没有人使用它们?

转载 作者:可可西里 更新时间:2023-10-31 22:41:50 24 4
gpt4 key购买 nike

我是 php 的新手,在寻找如何使用套接字的示例时,我注意到它们都不包含异常处理代码。

起初我认为也许 php 没有异常(exception)......但谷歌告诉我否则。有大量文章赞扬在 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 的两个示例:

感谢您的宝贵时间!

最佳答案

PHP 有一种以世界末日为主题的错误处理方法:如果出现任何问题,脚本就会结束,并且它正在使用的任何资源(数据库连接、文件、套接字、内存)都会被运行时释放。与在 Java 或 C# 中相比,这使得处理此类问题不那么重要,在 Java 或 C# 中,服务器代码连续运行 — 在 PHP 中,未处理的错误条件意味着单个用户不便,在 Java 或 C# 中,它可能意味着资源泄漏最终会导致所有人的服务器宕机。

当然,还有一个事实是 PHP 在其函数库的很大一部分已经固定下来之后一路添加了异常,这意味着所有这些函数都使用返回码和错误报告而不是异常。用异常替换错误不能在库级别完成(它会破坏太多现有代码)并且在代码级别这是一项艰巨的任务,涉及大量样板来检测错误并在沉默时抛出异常。

关于php - PHP 中的异常...为什么没有人使用它们?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5309882/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com