php什么时候抛异常,什么时候应该使用PHP异常?

我们在项目中广泛使用例外.

一个具体的实例是要求用户登录或注册的操作.我们在错误条件下使用异常来进行流量控制.如果当前用户没有登录,我们抛出异常.然后,异常处理程序将它们重定向到登录页面.

以我们的注册操作为例,我们扩展了这样的异常:

class RegistrationFailed extends Exception {}

现在在我们的注册代码中的catch语句中,我们可以测试RegistrationFailed异常并相应地处理它.否则,当异常不是RegistrationFailed时,我们允许它冒泡,因为我们不感兴趣.

try {

// do registration here

}

catch(RegistrationFailed $e) {

// handle the failed registration

}

catch(SomeOtherException $e) {

// handle other errors like this...

}

// All other errors will not be caught and will bubble up

另一个例子是我们的包装类,开发者必须扩展.我们使用Reflection来确保子类已经正确地实现了他们的方法并提供了正确的界面.如果不是,我们通过例外通知该类的开发人员,让他们知道一个特定的接口或方法必须由子类提供.

编辑:

我可以听到关于“你不应该使用流量控制的错误处理”的评论!然而,对于上述项目,这是有必要的.

在程序的正常流程中,由于许多验证规则可能会失败,预期失败的注册,如密码太短.

然而,它是一个ajax应用程序,所以有可能在没有登录的情况下手动访问ajax url.这是一个例外,因此我们处理它.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值