如果你对该文章中的内容有疑问/不解,可以点击此处链接提问
要注明问题和此文章链接地址 点击此处跳转
1.捕获异常
2.处理异常(记录日志 或者 修复异常 或者 返回客户端)
3.抛出异常
try{
$banner = .....
}catch(Exception $ex)
{
$err = [
'error_code=>'10001,
'msg'=>$ex->getMessage()
];
return json($err,400);
}
200是正确获得内容,并非执行成功
异常
1.用户行为导致的异常
不需要记录日志
需要向用户返回错误信息
2.服务器自身的异常
记录日志
不向用户返回具体原因
全局异常处理
新建application/lib/exception/ExceptionHandler.php
引入think\exception\Handle;
引入think\Exception;
继承Handle
覆盖render方法
class ExceptionHandle extend Handle
{
public function render(Exception $ex)
{
return .....
}
}
config 异常处理设置
'excepton_handle'=>'app\lib\exception\ExceptionHandle',
获取当前的url
$request=Request::instance();
$url = $request->url();
tp5日志
config.php 中的 'log'
日志保存路径:LOG_PATH
常量的定义:start.php
日志的默认路径: runtime/log
自动记录日志:
系统默认
自定义记录日志:
更改日志目录:
在入口文件添加如下:
define('LOG_PATH',__DIR__.'/../log/');
关闭日志
config.php------log---'type'=>'test';
记录日志,放在全局错误中
private function recordErrorlog(Exception $e)
{Log::init([
'type'=>'File,
'path'=>LOG_PATH,
'level'=>['error]
])//日志初始化
Log::record($e->getMessage(),'error);
}
异常错误json 与HTML 格式转换:
在config定义个常量
使用系统的错误: return parent::render($e);
if(){
//用户自定义的错误显示信息
}else{
//系统的错误信息
if(config('err') == true){
//使用系统的HTML方法显示异常
}else{
//使用用户自定义的json显示异常
}
}
王明昌博客
