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

未匹配的标注

处理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 网站上。

上一篇 下一篇
wangchunbo
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
讨论数量: 0
发起讨论 只看当前版本


暂无话题~