• 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
    
  • 相关阅读:
    Java 图片处理——如何生成高清晰度而占有磁盘小的缩略图
    【设计模式】状态模式
    【设计模式】策略模式
    【设计模式】迭代器模式
    【设计模式】观察者模式
    【设计模式】享元模式
    【设计模式】桥接模式
    【设计模式】组合模式
    【设计模式】外观模式
    【设计模式】代理模式
  • 原文地址:https://www.cnblogs.com/cfmy/p/14720385.html
Copyright © 2020-2023  润新知