thinkphp 异常、错误处理逻辑

所属分类:php | 浏览:324 | 发布于 2025-12-29

从广义上来讲,所有的不合理的都可以称之为异常,但是又可以为特定异常定义更详细的处理规则。

1、异常处理

1.1、常见异常

控制器不存在

1.2、异常处理

// 异常页面的模板文件
'exception_tmpl'   => app()->getThinkPath() . 'tpl/think_exception.tpl',
// 错误显示信息,非调试模式有效
'error_message'    => '页面错误!请稍后再试~',
// 显示错误信息
'show_error_msg'   => true,

异常模版文件这个是必须的,可以在应用的app.php文件中重新定义

// web/config/app.php
return [
    // 异常页面的模板文件
    'exception_tmpl'   => app()->isDebug() ?
        app()->getThinkPath() . 'tpl/think_exception.tpl' :
        root_path().'template'.DIRECTORY_SEPARATOR.'default'.DIRECTORY_SEPARATOR . 'common' .DIRECTORY_SEPARATOR .'exception.html',
];

1.3、show_error_msg 选项

默认为 false,显示如下

此时,可以配合 error_message 来自定义 错误显示信息

当show_error_msg 为 true 时,会显示具体的错误信息,示例如下:

2、控制器方法不存在时处理逻辑(可选)

可以在基类控制器自定义控制器方法不存在时的处理逻辑,现在感觉这一步不太需要

/**
 * 当控制器方法找不到时处理逻辑
 * @param $method
 * @param $args
 * @return View
 */
public function __call($method, $args)
{
    $this->assign('returnHomeUrl', getHomePageUrl());
    return $this->view('common/error');
}

3、内容不存在时处理逻辑

在基类控制器写一个通用的内容不存在时的处理逻辑,内容被删除时使用。

/**
 * 页面不存在时处理逻辑
 * @return View
 */
public function http404(): View
{
    return $this->view('common/404', [], 404);
}

 

 

 

海涛贝塔(https://haitaobeta.com)属于海涛个人博客,欢迎浏览使用

联系方式:qq:52292959 邮箱:52292959@qq.com

备案号:粤ICP备18108585号 友情链接