当前位置: 首页 > article >正文

thinkphp:try-catch捕获异常

 使用简单的例子,实现了一个简单的try-catch捕获异常的实例

//开始事务
Db::startTrans();

try{

        //有异常抛出异常

        if(存在错误){

                throw new \Exception("异常信息");

        }

        // 提交事务
        Db::commit();
        // 返回成功信息
        ...

}

catch (\Exception $e) {//捕获到错误
        // 回滚事务
        Db::rollback();
        // 返回错误信息
        ...
 }

public function test(){
    //开始事务
    Db::startTrans();
    try{
        // 执行正常的操作,例如插入数据到数据库    
        $data = [
            'item1' => 'str1',
            'item2' => 'str2',
        ];  
        $insert = db::table('tablename')->insert($data);
        //判断数据是否插入成功,如果失败抛出异常
        if (!$insert) {
            throw new \Exception("插入 tablename 表失败");
        }            
        // 提交事务
        Db::commit();
        // 返回成功信息
        return json([
            'check' => 1,
            'msg'   => '数据插入成功',
        ]);
    }catch (\Exception $e) {//捕获到错误
        // 回滚事务
        Db::rollback();
        // 返回错误信息
        return json([
            'check' => 0,
            'msg'   => '数据插入失败: ' . $e->getMessage()
        ]);
    }
}


http://www.kler.cn/a/443027.html

相关文章:

  • CompletableFuture // todo
  • Unity2D初级背包设计后篇 拓展举例与不足分析
  • Linux web服务器
  • sql server cdc漏扫数据
  • vue el-table 数据变化后,高度渲染问题
  • 无网络时自动切换备用网络环境
  • flutter --no-color pub get 超时解决方法
  • 51单片机-内部扩展RAM的应用
  • nlp初学者怎么入门?需要学习哪些?
  • MySQL技术:深入理解索引与优化
  • 提升PHP技能:18个实用高级特性
  • Linux docker离线部署
  • 基于Armitage的MSF自动化集成攻击实践
  • Android显示系统(12)- 向SurfaceFlinger申请Buffer
  • 超详细 springboot 整合 Mock 进行单元测试!本文带你搞清楚!
  • 图(dfs与bfs)算法2
  • 如何配置VMware虚拟机的网络,使局域网内其它电脑可以访问?
  • git退掉远程仓库里的某个修改和记录
  • 鸿蒙风起,未来已来——云学堂鸿蒙应用认证开营啦!
  • C语言中信号量:<semaphore.h>头文件
  • 2024年12月18日Github流行趋势
  • vue3渲染el-tree组件,给默认选中的节点,禁用所有子节点
  • C# 实现 WinForm 全屏置顶
  • systemverilog中的循环(loop)
  • 批量DWG文件转换低版本(CAD图转低版本)——c#插件实现
  • TCP 三次握手四次挥手