异常处理篇之底层源码剖析

未匹配的标注

处理http请求的 基类 与 handle 方法

前面我们介绍 Laravel 中 HTTP 请求生命周期和中间件底层处理逻辑的时候,都涉及到了 vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php 这个文件,对应的 Illuminate\Foundation\Http\Kernel 类是我们 Laravel 应用 HTTP Kernel 类 App\Http\Kernel 类的基类,该类中有一个用于处理 HTTP 请求的 handle 方法,这段代码也是应用核心入口处理逻辑所在。

请求过程的异常与捕获

请求处理过程中的所有未处理异常都会被捕获并按照以下两步进行处理:

  • 根据应用配置向不同的渠道报告异常;
  • 将异常转化为可渲染的格式并以响应的方式返回给终端用户。

以上两个步骤底层执行逻辑分别对应异常处理器的 report 方法render 方法

Laravel 默认的异常处理器

位于 app/Exceptions/Handler.php,对应的处理器类继承自基类 Illuminate\Foundation\Exceptions\Handler,如果你需要对异常处理逻辑进行自定义的话,可以在这里覆盖父类的 report 方法和 render 方法实现

异常处理篇之异常信息报告、渲染及自定义处理

学习链接:xueyuanjun.com/post/19571

本文章首发在 LearnKu.com 网站上。

上一篇 下一篇
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 0
发起讨论 只看当前版本


暂无话题~