春节期间熟悉了TP6, 也写了一个TP6的博客程序,但系统的异常页面实在另外头疼,很多时候无法查看到是哪行代码出的问题。

所以就特别的想把whoops引进来,经过一系列的研究,终于找到了解决的办法:

1. 通过composer安装whoops

运行命令:  composer require filp/whoops

注意:composer引进的文件如果有语法错误,需要提前把语法错误处理好才能进行安装,否则一直报错。

2. 使用whoops接管tp6的异常处理

在/app/ExceptionHandle.php文件的render()方法中加入如下代码:

// 添加自定义异常处理机制
if (ENV('APP_DEBUG')) {
// 如果是HttpResponseException异常则原样输出
// JUMP插件里的success,error和result方法均返回的是HttpResponseException异常
if ($e instanceof HttpResponseException) {
return $e->getResponse();
} // Whoops 接管请求异常
$whoops = new \Whoops\Run;
$whoops->pushHandler(new \Whoops\Handler\PrettyPageHandler());
return Response::create(
$whoops->handleException($e),
'html',
500
);
}

如下图:

3. 看看结果吧

我在博客首页的index方法中写入了一个不存在的函数:

刷新页面一看, 妥了

OK. 熟悉的whoops又回来了.

4. 后记

为了在thinkphp6中使用whoops, 我又认真的看了一遍PHP7中的异常机制,终于是把whoops给引进来了.

在学习异常处理的过程中, 我也发现在PHP7中应该使用try()catch()来进行业务处理, 而不是再使用if()else()了.

后续我会单独写篇文章来讲述我在研究PHP7的异常中获得的经验.

也希望大家能继续关注我的博客http://laoliu.pro

原文链接:http://laoliu.pro/php/6.html

告别ThinkPHP6的异常页面, 让我们来拥抱whoops吧的更多相关文章

  1. ASP.NET Core应用的错误处理[2]:DeveloperExceptionPageMiddleware中间件如何呈现“开发者异常页面”

    在<ASP.NET Core应用的错误处理[1]:三种呈现错误页面的方式>中,我们通过几个简单的实例演示了如何呈现一个错误页面,这些错误页面的呈现分别由三个对应的中间件来完成,接下来我们将 ...

  2. DeveloperExceptionPageMiddleware中间件如何呈现“开发者异常页面”

    DeveloperExceptionPageMiddleware中间件如何呈现"开发者异常页面" 在<ASP.NET Core应用的错误处理[1]:三种呈现错误页面的方式&g ...

  3. spring MVC中定义异常页面

    如果我们在使用Spring MVC的过程中,想自定义异常页面的话,我们可以使用DispatcherServlet来指定异常页面,具体的做法很简单: 下面看我曾经的一个项目的spring配置文件: 1 ...

  4. SpringMVC 实现文件上传与下载,并配置异常页面

    目录 上传文件的表单要求 Spring MVC实现上传文件 需要导入的jar包 配置MultipartResolver解析器 编写接收上传文件的控制器 Spring MVC实现文件下载 下载文件时的h ...

  5. ThinkPHP自定义错误页面、成功页面及异常页面

    为什么会选择 ThinkPHP 呢?首先,作为一款国产PHP框架,文档肯定比国外那些框架要丰富的多,而且容易看懂:其次,ThinkPHP已经发展了七八年的时间了,相对来说已经比较成熟了:当然,最重要的 ...

  6. Springboot入门-配置异常页面

    springboot中,可以使用org.springframework.boot.context.embedded.EmbeddedServletContainerCustomizer类来统一的处理异 ...

  7. struts2 异常页面乱码问题

    在 struts.xml 或者 struts.properties 文件里添加 <constant name="struts.locale" value="zh_C ...

  8. ASP.NET Core 开发人员异常页面

    UseDeveloperExceptionPage 中间件 我们谈谈在 Startup 类的 Configure()方法中以下代码: public void Configure(IApplicatio ...

  9. laravel 框架配置404等异常页面的方法详解(代码示例)

    本篇文章给大家带来的内容是关于laravel 框架配置404等异常页面的方法详解(代码示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 在Laravel中所有的异常都由Handl ...

随机推荐

  1. xcode6添加pch文件

    pch文件 定义:该文件中定义的内容为全局变量,可供所有类进行调用 例子:在pch文件中定义ios版本

  2. sqlserver 时间格式 取年月日时分

    select substring( convert(varchar,getdate(),120),1,16)

  3. 项目中关于RPC 和rocketMQ使用场景的感受

    在花生待的这半年,切身体会了系统之间交互场景的接口技术实现方式,个人总结.仅供参考: 1.关于rpc接口,一般情况下 都是同步的.A系统的流程调用B系统.等着B返回,根据返回结果继续进行A接下来的流程 ...

  4. redis维护节点常用操作

    维护节点 添加主节点 hash槽重新分配 添加从节点 删除结点 1 添加主节点 集群创建成功后可以向集群中添加节点,下面是添加一个master主节点 添加7007结点作为新节点 执行命令:./redi ...

  5. 工具类BitMap 把网络URL图片转换成BitMap

    代码不复杂,直接把完整代码贴上. 这次是用到很旧的HttpURLConnection,那为什麽会用这个,因为我本来想转回okhttp的,可实在没时间转,项目就已经做下去了,结果转不回来. packag ...

  6. PAT甲级——1036 Boys vs Girls

    1036 Boys vs Girls This time you are asked to tell the difference between the lowest grade of all th ...

  7. webapck imports-loader和exports-loader的使用

    webapck imports-loader和exports-loader的使用

  8. java中==和equals

    /** * @author zhaojiatao * @date 2018/7/19 */ public class equalsLearn { public static void main(Str ...

  9. Redhat6更改yum源 (转)

    最近虚拟机中安装了redhat6.3企业版,自带的yum用不起来,软件都找不到. 网上搜了一下说是没付钱...,需要改下yum源.操作步骤如下: 1.切换到yum源存放目录[root@rhel6 ~] ...

  10. JavaScript--DOM,BOM

    前戏 到目前为止,我们已经学过了JavaScript的一些简单的语法.但是这些简单的语法,并没有和浏览器有任何交互. 也就是我们还不能制作一些我们经常看到的网页的一些交互,我们需要继续学习BOM和DO ...