原生php捕获异常,Safe PHP 项目 - 重写原生 PHP 函数使其在发生错误时抛出异常

e5f461d06ef747ef10422837d0b3da69.png

在 David Négrier 的 Safe PHP 中, 所有返回 false 的 php 函数都会被重写,直接抛出异常。自述文件讲述了异常处理添加到 PHP 之前函数返回 false 的问题。

此项目的 Readme 文件中,描述了函数返回 false 的历史问题:

大多数 PHP 核心函数都是在引入异常处理之前编写的。 因此大多数 PHP 函数都不会抛出异常,只会在出错时返回 false 。

readme文件进一步解释了使用当前的PHP语言实现对 false 判断的形式是如何的:

$content = file_get_contents('foobar.json');

if ($content === false) {

throw new FileLoadingException('Could not load file foobar.json');

}

$foobar = json_decode($content);

if (json_last_error() !== JSON_ERROR_NONE) {

throw new FileLoadingException('foobar.json does not contain valid JSON: '.json_last_error_msg());

}

Safe PHP 对这种场景的解决方案如下:

Safe-PHP 重新定义了所以PHP核心函数。除了在错误发生时会抛出一个异常,新PHP函数其他方面和旧函数一致。「safe」的函数和旧的PHP核心函数名称一样,只是「safe」的函数在 Safe 命名空间之下。

以下是使用此包想要用到的方法:

use function Safe\file_get_contents;

use function Safe\json_decode;

// 这些代码既安全又简单!

$content = file_get_contents('foobar.json');

$foobar = json_decode($content);

你可以通过访问 GitHub 包源码 来获取关于包更多的信息。 该报还具有一些自动重构功能。

注意: 安全 PHP 包被声明为实验版本,由于一些  剩余未解决的问题 尚未到 1.0版本

本文中的所有译文仅用于学习和交流目的,转载请务必注明文章译者、出处、和本文链接

我们的翻译工作遵照 CC 协议,如果我们的工作有侵犯到您的权益,请及时联系我们。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值