• TP5实现自定义抛出异常消息(关闭debug)


    重写Handle的render方法,实现自定义异常消息-----------------------------------------------------------------------
    首先要在config.php里面配置

    // 异常处理handle类 留空使用 	hinkexceptionHandle
    'exception_handle' => '\app\common\exception\ExceptionHandler',



    ExceptionHandler
    .php


    <?php

    namespace appcommonexception;

    use thinkexceptionHandle;
    use thinkLog;
    use Exception;

    /**
    * 重写Handle的render方法,实现自定义异常消息
    * Class ExceptionHandler
    * @package appcommonlibraryexception
    */
    class ExceptionHandler extends Handle
    {
    private $code;
    private $message;

    /**
    * 输出异常信息
    * @param Exception $e
    * @return hinkResponse| hink esponseJson
    */
    public function render(Exception $e)
    {
    if ($e instanceof BaseException) {
    $this->code = $e->code;
    $this->message = $e->message;
    } else {
    if (config('app_debug')) {
    return parent::render($e);
    }
    $this->code = 0;
    $this->message = $e->getMessage() ?: '很抱歉,服务器内部错误';
    $this->recordErrorLog($e);
    }
    return json(['msg' => $this->message, 'code' => $this->code]);
    }

    /**
    * 将异常写入日志
    * @param Exception $e
    */
    private function recordErrorLog(Exception $e)
    {
    Log::record($e->getMessage(), 'error');
    Log::record($e->getTraceAsString(), 'error');
    }
    }


    自定义异常类的基类---------------------------------------------------------------------------------------------
     
    BaseException.php
    
    
    <?php

    namespace appcommonexception;

    use thinkException;

    /**
    * Class BaseException
    * 自定义异常类的基类
    */
    class BaseException extends Exception
    {
    public $code = 0;
    public $message = 'invalid parameters';

    /**
    * 构造函数,接收一个关联数组
    * @param array $params 关联数组只应包含code、msg,且不应该是空值
    */
    public function __construct($params = [])
    {
    if (!is_array($params)) {
    return;
    }
    if (array_key_exists('code', $params)) {
    $this->code = $params['code'];
    }
    if (array_key_exists('msg', $params)) {
    $this->message = $params['msg'];
    }
    }
    }





    抛出异常时显示如下

    
    
    
     
  • 相关阅读:
    路径
    aspx.cs调用js方法
    计算字符串中每种字母出现的次数
    [转载]获取2个集合List<T>的共同元素
    [转载]行列转换
    [转载]UNION合并查询
    [转载]Case When Then
    [转载]CAST-CONVERT两个函数进行类型转换时的异同点
    [转载]404错误页面设置
    [转载]JQ小知识
  • 原文地址:https://www.cnblogs.com/zhyphp/p/11557708.html
Copyright © 2020-2023  润新知