前言
公司开发一个新项目,用TP6写后台接口,在框架基础上自定义了错误和日志,使之贴合业务。
一、自定义异常处理
在app目录下的provider.php文件中绑定自定义异常处理类。
use app\common\exception\ExceptionHandle;
// 容器Provider定义文件
return [
'think\exception\Handle' => ExceptionHandle::class,
];
自定义异常处理类
class ExceptionHandle extends Handle
{
public function render($request, Throwable $e): Response
{
//调试状态下,浏览器界面显示
if (env('APP_DEBUG', false)) {
return parent::render($request, $e);
}
if ($e instanceof RouteNotFoundException) {
$msg = 'http request not found';
} elseif ($e instanceof \RedisException) { // redis未安装
$msg = 'redis connect failed';
} else {
$message = $e->getMessage() . ' in ' . $e->getFile()