ThinkPhp5 自定义异常处理类

在项目的开发过程当中异常抛出尤其重要不只可以作出友好提示帮助掩盖咱们伟大的程序员们尴尬的瞬间,还能作到提示开发人员代码白编写的错误,下面进行自定义异常抛出类,纯属我的理解,但愿你们指正php

首先在框架中咱们能够自定义目录结构用来作异常类的存储位置例如文件目录为如下红框中程序员

定义目录结构后阐述一下我理解的异常类的工做流程,见名知意既然是异常抛出那么只有在代码出现问题的时候或者是逻辑出现异常的时候会进行抛出,那么我认为这就会出现两种状况,thinkphp

第一种是用户传输的参数或者用户操做的流程有问题这种状况下并非咱们的开发的代码或者是业务逻辑出现的致命错误,直白的将这种状况就是用户的请求没有返回相应的数据服务器

第二种是咱们的代码存在问题,或者是服务器上面的问题,可是这个问题咱们是不须要用户知道的,在这种状况下咱们即须要给出用户的友好提示,还须要知道咱们的代码具体是哪里出现了问题因此这种状况下咱们就须要记录日志框架

分析了两种状况以后首先建立应对第一种状况的类,命名为BaseException.php在这个类中须要定义的很简单就是对应第一种状况的友好信息thinkphp5

信息中包括的是抛出异常的http状态码、异常的信息、自定义异常的状态码(可选)日志

可是BaseException.php须要继承Exception虽然咱们是本身定义的异常类可是仍是须要遵循规律,既然要抛出异常,就须要有捕获异常,BaseException.php代码以下blog

下面看一下官方手册继承


很明显官方已经指出咱们接下来要作的开发

定义Z_Exception.php用来继承Handle类而且重写render方法,这样咱们就能够将咱们自定义的信息进行抛出,而且在这个类中穿插判断用来应对第二种异常的状况

至此存在一个值得注意的问题在config.php中的问题

自己此处为空但咱们已经本身定义了异常类,若是没有更改的话会致使致命错误这里你们应该值得注意一下

处理以后继续下一步添加日志

经过入口文见index.php能够追踪到框架的核心文件start.php打开以后看到加载base.php而后打开base.php就能够看到文件的配置项找到log查看文件的路径

由此能够定位到log文件的路径

由此咱们更改一下log的路径方便咱们之后管理,在index.php中从新定义LOG_PATH的路径

更改文件的路径后咱们应该将框架中默认的记录日志的方式进行更改能够参考官方的文档

https://www.kancloud.cn/manual/thinkphp5/118126

更改框架中的日志的记录方式就是在config.php查找Log模块,将日志的type由File更改成test

既然日志是为了应对生产环境下的问题那么我在代码编写的时候就应该在

 

以后进行日志的记录,可是要是进行日志的记录咱们就应该使用框架中的Log类

在Z_Exception.php中定义方法用来写入日志

而后再调用

这样就完成了自定义的类和自定义的日志文件

 

https://www.kancloud.cn/xiaoshengzi/thinkphp5/484897

相关文章
相关标签/搜索