Maison  >  Article  >  développement back-end  >  web - php实际开发怎么处理错误?

web - php实际开发怎么处理错误?

WBOY
WBOYoriginal
2016-06-06 20:12:37792parcourir

比如查找不存在的值,访问模块方法错误,权限不足……各种意想不到的错误。

一访问直接弹出了错误信息,我感觉每次都写个判断条件好麻烦,有没有什么好办法?求教!

回复内容:

比如查找不存在的值,访问模块方法错误,权限不足……各种意想不到的错误。

一访问直接弹出了错误信息,我感觉每次都写个判断条件好麻烦,有没有什么好办法?求教!

如果是程序错误,建议使用 set_error_handlerset_exception_handler 设置一个函数来统一处理错误。

如果是自己设置的权限等错误,可以使用 throw exception 的形式先将错误抛出去,在从外侧接收并作统一处理,就不必在每个错误点写判断和处理了。

楼上几位说的方法都是很正确的。不过对于实际开发最终只有404(无效的url)403(权限不足)是可以接受的,像你说的 访问模块方法错误 就太逗了,这是bug好吗?严格来说你列举的情况都属于bug,上线前必须修复的,有什么需要判断和处理的。

从最终产品的角度看,我们需要识别的是用户录入数据及操作的合法性,当出现问题的时候给出一个友好提示。至于开发期间的bug,修复了不就没有了。

这个得具体例子具体分析,比如你说查找一个数组中不存在的值,常见的可以使用isset判断,但是也可以利用ArrayAccess这个接口去处理,具体用法你只要看一下这个接口就明白了。判断是否错误的调用了一个类中的方法可以用method_exists判断,也可以使用魔术方法去统一处理。还有很多很多错误和方法。具体得看是什么错误,还有对这种错误的容忍程度,去选择不同的方法。有些地方必须用try catch的就必须用,有些错误可以容忍,甚至可以让他直接报一个notice

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn