PHP错误与异常的处理


PHP错误与异常的处理,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。错误,可以理解程序本身的错误,例如语法错误。而异常则更偏向于程序运行不符合预期或者不符合正常流程;对于 PHP 语言而言,处理错误和处理异常使用的机制完全不同,因此很容易让人产生困惑。例如,我们希望通过捕获异常来处理除数为 0 的情况,但是在捕获到异常之前,PHP 就触发了错误。也就是说,PHP 将除数为 0 的情况当成了错误而触发,而不会自动抛出异常,因此没法捕获。类似的,在很多情况下,PHP 都没办法自动抛出异常。只能通过if - else语句判断再结合throw方法来并手动抛出异常。上述情况的发生,主要还是因为异常机制是 PHP 向面向对象演进后得到的产物。而在此之前 PHP 的报错主要还是通过错误机制,因此,在很多情况下,PHP 的错误要比异常更有价值。不过 PHP7 开始统一这两者,使错误也可以像异常那样抛出(这部分内容将放在异常部分讲解)。PHP 中的错误可理解为使脚本不运行不正常的情况,根据错误级别从高到低可划分为五类Parse error 或 Syntax Error – 语法解析错误,触发该错误后,脚本完全无法运行;Fatal Error – 致命错误,触发该错误后,后面的脚本无法继续执行;Warning Error – 出现比较不恰当的地方,脚本可继续执行;Notice Error – 出现不恰当的地方,但是程度比 Warning Error 低,脚本可继续执行;Deprecated Error – 不推荐这么使用,未来可能会废弃,脚本可继续执行;默认情况下,PHP 触发错误,并显示错误的级别及对应的提示。Parse Error 示例 – 语句结尾不写分号Fatal Error 示例 – 使用不存在的函数Warning Error 示例 – 引入不存在的文件Notice Error 示例 – 输出不存在的变量Deprecated Error 示例 – 在一些字符串函数中传入数字而非字符串除了默认触发消息外,用户也可以使用set_error_handler函数自定义错误处理,大多数错误类型都可以进行自定义处理,除了E_ERRORE_PARSEE_CORE_ERRORE_CORE_WARNINGE_COMPILE_ERRORE_COMPILE_WARNING外。示例用户也可以通过trigger_error函数来手动触发一个用户级别的错误(E_USER_ERRORE_USER_W 香港云主机ARNINGE_USER_NOTICEE_USER_DEPRECATED)。一些错误处理相关的常用配置error_reporting– 设置错误的报告级别display_errors– 是否显示错误display_startup_error– 是否显示 PHP 启动过程中的显示log_errors– 设置是否将脚本运行的错误信息记录到服务器错误日志或者 error_log 之中《Modern PHP》提出了四个规则一定要让 PHP 报告错误;在开发环境中要显示错误;在生产环境中不能显示错误;在开发环境和生产环境中都要记录错误;开发环境推荐配置生产环境推荐配置异常和错误消息字符串必须使用sprintf来进行拼接;当错误类型为E_USER_DEPRECATED时,需要添加@关于PHP错误与异常的处理问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注开发云行业资讯频道了解更多相关知识。

相关推荐: JavaScript常用数组怎么去重

今天小编给大家分享一下JavaScript常用数组怎么去重的相关知识点,内容详细,逻 香港云主机辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。1.利用对象的属性使用对象属…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

Like (0)
Donate 微信扫一扫 微信扫一扫
Previous 08/11 16:56
Next 08/11 16:56

相关推荐