TP公共文件异常
- 对于不可预知的内部异常,可以通过app/ExceptionHandle(公共文件)文件内设置。
class E extends BaseController
{
public function index()
{
//echo 未定义的变量
echo "$ads";
}
}
public function render($request, Throwable $e): Response
{
// 添加自定义异常处理机制
//未定义的变量,异常代码
return show(config("status.error"),$e->getMessage());
// 其他错误交给系统处理
//return parent::render($request, $e);
}
开发者模式下的异常提示
TP分层结构,异常处理
由于运用了架构分层,多个模块(admin模块、user模块等模块)都有不同的异常处理,需要分开处理。
简单说就是针对某个模块制定一个或多个异常处理。
针对你想要制定的模块,在controller文件夹中建立一个异常处理控制器,然后书写逻辑代码(以下代码是以demo模块为例子)。
<?php
namespace app\demo\exception;
use think\exception\Handle;
use think\Response;
use Throwable;
class Http extends Handle{
public $httpStatus = 500;
public function render($request, Throwable $e): Response
{
// 添加自定义异常处理机制
return show(config("status.error"),$e->getMessage(),[],$this->httpStatus);
}
}
保存后,系统并不能识别到此段代码,需在该模块app目录下,配置一个新的provieder.php文件。
<?php
use app\ExceptionHandle;
use app\Request;
// 容器Provider定义文件
return [
'think\exception\Handle' => 'app\\demo\\exception\\http',
];
即可访问本模块下的异常处理。
新的目录结构: