• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    thinkphp5.1 中使用自定义异常处理类进行接管

    配置文件修改

    config/app.php
    自定义异常接管类出处
    'exception_handle' => ‘\app\common\exception\ExceptionHandle',

    自定义处理异常方法
    寡人的存放目录为 app/common/exception

    ApiException.php

    namespace app\common\exception;
    use Exception;
    class ApiException extends Exception
    {	
    	/**
    	 * 构造函数
    	 */
    	public function __construct(array $ApiErrConst, Throwable $previous = null)
    	{
    		$code = $ApiErrConst[0];
    		$message = $ApiErrConst[1];	
    		parent::__construct($message, $code, $previous);
    	}
    }
    

    ExceptionHandle.php

    namespace app\common\exception;
    use Exception;
    use think\exception\Handle;
    use app\common\exception\ApiException;
    use app\common\err\ApiErrCode;
    class ExceptionHandle extends Handle
    {
    	// 引入复用模块:JSON返回格式
    	use \app\common\traits\ResponseJson; 
    	public function render(Exception $e)
    	{		
    		if($e instanceof ApiException) {
    			$code = $e->getCode();
    			$message = $e->getMessage();	
    		}else{
    			$code = $e->getCode();
    			if(!$code || $code  0) {
    				$code = ApiErrCode::ERROR_UNKNOW[0];
    			}
    			$message = $e->getMessage() ? $e->getMessage() : ApiErrCode::ERROR_UNKNOW[1];
    		}		
    		echo $this->jsonErrorData($code,$message); //该方法在下方
    		// 其他错误交给系统处理
           // return parent::render($e); 
    	}
    }
    

    错误码文件

    存放目录:app/common/err

    namespace app\common\err;
    class ApiErrCode 
    {
    	/** 
    	 * API通用错误码 const 定义常量
    	 * error_code  1000
    	 */	
        const ERROR_UNKNOW = [0, "未知错误"];
        const ERROR_URL = [1, "接口不存在"];
        .......
    }
    

    复用模块

    针对API接口返回格式
    存放目录:app/common/traits

    namespace app\common\traits;
    trait ResponseJson
    {
    	/**
    	 * API接口出现业务异常时时返回
    	 * @author Leo 
    	 */
    	public function jsonErrorData($code,$message,$data = [])
    	{
    		return $this->jsonResponse($code, $message, $data);
    	}
    
    	/**
    	 * API接口请求成功时返回
    	 * @author Leo 
    	 */
    	public function jsonSuccessData($data = [])
    	{
    		return $this->jsonResponse(200, "Sucess", $data);
    	}
    
    	/**
    	 * 返回一个JSON
    	 * @author Leo 
    	 */
    	private function jsonResponse($code,$message,$data) 
    	{
    		$content = [
    			'code' => $code,
    			'msg' => $message,
    			'data' => $data
    		];
    		return json_encode($content);
    	}
    }
    
    

    页面调用

    // 文件头部引入
    use app\common\exception\ApiException;
    use app\common\err\ApiErrCode;
    // 引入复用模块:JSON返回格式
    use \app\common\traits\ResponseJson;
    
    // 示例
    public function index() {
    	throw new ApiException(ApiErrCode::ERROR_URL);		// 自定义异常抛出
    }

    到此这篇关于thinkphp5.1 中使用自定义异常处理类进行接管的文章就介绍到这了,更多相关thinkphp5.1 自定义异常处理类内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

    您可能感兴趣的文章:
    • thinkphp5.1框架实现格式化mysql时间戳为日期的方式小结
    • thinkphp5.1框架中容器(Container)和门面(Facade)的实现方法分析
    • ThinkPHP5.1框架数据库链接和增删改查操作示例
    • thinkPHP5.1框架使用SemanticUI实现分页功能示例
    • thinkPHP5.1框架中Request类四种调用方式示例
    上一篇:解析PHP中Exception异常机制
    下一篇:PHP局部异常因子算法-Local Outlier Factor(LOF)算法的具体实现解析
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    thinkphp5.1 中使用自定义异常处理类进行接管 thinkphp5.1,中,使用,自定义,