zoukankan      html  css  js  c++  java
  • TP6.0 自定义异常处理类

    1. 拷贝框架自带的 应用异常处理类, 另存一份


    复制 app/ExceptionHandle.php, 另存为 app/ApiExceptionHandle.php

    ApiExceptionHandle.php 中的 render() 方法中 自定义异常处理机制

    public function render($request, Throwable $e): Response
    {
        // 添加自定义异常处理机制
        if ( $e instanceof HttpException ) {
            return $this->json($e->getMessage(), $e->getStatusCode());
        }
        if ( !empty($e->getMessage()) ) {
            return $this->json($e->getMessage(), $e->getCode());
        }
        // 其他错误交给系统处理
        return parent::render($request, $e);
    }
    
    /**
     * 返回json数据
     *
     * @param string $msg   描述信息
     * @param integer $code 状态码
     */
    private function json(string $msg, int $code)
    {
        return json(compact('code', 'msg'));
    }
    

    自定义异常类可放在全局容器Provider定义文件, 也可放在应用目录下

    全局容器Provider定义文件: app/provider.php

    应用容器Provider定义文件: app/index/provider.php

    <?php
    
    // 容器Provider定义文件
    
    return [
        // 自定义异常处理
        'thinkexceptionHandle' => liang	p6ApiExceptionHandle::class,
    ];
    

    2. 自定义抛出异常的函数


    /**
     * 操作成功
     *
     * @param string  $msg
     * @param integer $code
     */
    function msg(string $msg = "", int $code = 0)
    {
        throw new Exception($msg, $code);
    }
    
    /**
     * 返回错误信息
     *
     * @param string  $msg
     * @param integer $code
     */
    function fault(string $msg = "", int $code = 1)
    {
        throw new Exception($msg, $code);
    }
    

    3. 该自定义异常类已内置于适用于TP6.0的个人开发工具包


    composer require shinyboys/tp6.0
    
  • 相关阅读:
    POJ 3253 Fence Repair STL 优先队列
    P1196 [NOI2002]银河英雄传说 题解
    UVA1316 Supermarket 题解
    P1955 [NOI2015]程序自动分析 题解
    P3807 【模板】卢卡斯定理 题解
    P2480 [SDOI2010]古代猪文 题解
    题解 P4778 【Counting swaps】
    P1313 计算系数 题解
    P3810 【模板】三维偏序(陌上花开)题解
    P1072 Hankson 的趣味题 题解
  • 原文地址:https://www.cnblogs.com/cfmy/p/14720385.html
Copyright © 2011-2022 走看看