加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

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

发布时间:2020-12-13 16:29:22 所属栏目: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.这是一个例外,因此我们处理它.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读