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

前端之家收集整理的这篇文章主要介绍了什么时候应该使用PHP异常?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我看过很多教程,演示简单的尝试捕捉,比如打开文件的行为.但我从未见过一个大的“真实”的例子.有人可以向我提供一些他们有或将会使用例外的情况吗?是否真的需要扩展异常类才能抛出异常?最后,当抛出异常时,是否导致脚本退出(); ?或者,它是否记录并继续执行脚本?
我们在项目中广泛使用例外.

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

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

class Registration@R_404_159@ extends Exception {}

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

try {
    // do registration here
}
catch(Registration@R_404_159@ $e) {
    // handle the @R_404_159@ registration
}
catch(SomeOtherException $e) {
    // handle other errors like this...
}

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

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

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

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

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

猜你在找的PHP相关文章