myphp.vip

1.异常处理:

【代码越抽象,复用性越高】

【封装性越好,适应代码变化的能力越强】

【】

<?php
/**
* Created by PhpStorm.
* User: 14155
* Date: 2018/12/22
* Time: 23:40
*/ namespace app\lib\exception; use think\Exception;
use think\exception\Handle;
use think\Request; class ExceptionHandler extends Handle
{
private $code;
private $msg;
private $errorCode; //需要返回客户端当前的Url
public function render(\Exception $e)
{
if ($e instanceof BaseException) {
// 如果是自定义的消息
$this->code = $e->code;
$this->msg = $e->msg;
$this->errorCode = $e->errorCode;
} else {
$this->code = 500;
$this->msg = '服务器内部错误';
$this->errorCode = 999;
}
$request = Request::instance();
$result = [
'msg' => $this->msg,
'error_code' => $this->errorCode,
'request_url' => $request->url()
];
return json($result, $this->code);
}
}

【】

<?php
/**
* Created by PhpStorm.
* User: 14155
* Date: 2018/11/10
* Time: 0:31
*/ namespace app\lib\exception; use think\Exception; class BaseException extends Exception
{
// HTTP 状态码 404,200
public $code = 400; // 错误具体信息(英文)
public $msg = 'Parameter error'; // 自定义的错误码
public $errorCode = 10000; }

【】

<?php
/**
* Created by PhpStorm.
* User: 14155
* Date: 2018/12/22
* Time: 23:44
*/ namespace app\lib\exception; class BannerMissException extends BaseException
{
public $code = 404;
//请求的banner不存在;
public $msg = 'The request Banner does not exist';
public $errorCode = 40000;
}

【】

最新文章

  1. 深入解析SQL Server并行执行原理及实践(下)
  2. 使用 Eclipse 调试 Java 程序的 10 个技巧
  3. Redis学习笔记7--Redis管道(pipeline)
  4. 数据类型和Json格式(转载)
  5. android环境搭建
  6. mv命令(转)
  7. 中断(interrupt)、异常(exception)、陷入(trap)
  8. HTTP Status 500 - An exception occurred processing JSP page /WEB-INF
  9. 基于url的权限管理
  10. Flask的session——关于写扩展所学习到的
  11. Android 高手进阶,自己定义圆形进度条
  12. sublimeText3插件安装
  13. 引入js文件,ajax不执行操作
  14. WaitForSingleObject函数
  15. Linux内核编程、调试技巧小集
  16. KiCad EDA 原理图库的最佳实践
  17. mysql explain执行详解
  18. Android自定义控件总结
  19. bzoj 1008
  20. HTTPS协议加密原理解析

热门文章

  1. 基于Tcp协议的上传下载
  2. [Usaco2012 Jan]Video Game
  3. LightOJ 1235 - Coin Change (IV) (折半枚举)
  4. Two Flowers CodeChef - TWOFL
  5. python浅拷贝深拷贝
  6. poj2112Optimal Milking(二分+最大流)
  7. java学习第二章
  8. day02 -操作系统及python入门
  9. CSS层叠的问题、标准文档流、伪类选择器
  10. 项目适配iOS9遇到的一些问题及解决办法 ,以及URL 白名单配置方法