前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >PHP异常处理函数,Thinkphp调试

PHP异常处理函数,Thinkphp调试

作者头像
宣言言言
发布2019-12-18 16:41:45
1.3K0
发布2019-12-18 16:41:45
举报
文章被收录于专栏:宣言(Siam)博客宣言(Siam)博客

在我们开发过程、已上线的应用中,程序经常会因为异常而崩溃。 比如:数据库执行失败调用了不存在的类调用了不存在的函数/方法….

如果是在开发过程中还好,问题肯定是由我们自己发现,可以清楚地看到异常的信息。 那么如果是已经上线的应用,那么出现问题的时候,客户往往是这么说的

在xxx的时候 网页没有反应,网页失败了。

So? How to review it?

以上举例是我们本次要解决的问题,我们再来查看一个案例。

用过thinkphp等任何一个框架的都知道,当我们的程序报错时,显示的都是框架美美的报错异常页面。

之所以能显示出框架自定义的页面,都是因为使用了异常处理函数来实现的。

异常处理函数

在默认的php中,产生异常的时候是这样子的:



php提供了set_exception_handler函数,让我们可以自定义异常产生时执行、输出的数据。

此时我们可以看到我们自定义的内容输出了。

在thinkphp中,除了异常类携带的简单file、code、message、trace等

还会获取当前服务器的配置、脚本的参数(get/post…)、数据库查询语句等

然后组合成一个有排版、数据充足的页面展示给我们,方便了我们排查问题。

thinkphp 默认的异常处理器

tp中默认的异常处理器是:\think\exception\Handle这个类,同时在配置文件中也预留了我们自定义的配置空间。

在thinkphp中实现异常上报模块

我自定义了一个继承了tp默认异常处理器的新类,并在其中记录了php脚本执行时间tp能获取到的全部数据 然后上报到数据库(或者其他储存地址)

再自定义了查看异常记录的页面

当点击查看记录的时候,在脚本中开启tp的debug模式,然后复现数据

到这里,哪怕线上的脚本挂了,我们也可以通过此模块查看复现报错的地方。

客户说遇到了问题崩溃了,我们查看此模块分析就可以,

甚至可以每天定期查看该模块,检查程序是否有异常产生,提前解决,提高程序的稳健性

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019.06.19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 异常处理函数
  • thinkphp 默认的异常处理器
  • 在thinkphp中实现异常上报模块
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档