Laravel框架 redis hget() scontains()方法报错解决 阿星小栈

本文介绍了一种通过try-catch结构来改进Redis权限验证的方法,避免直接在if条件语句中调用可能抛出异常的方法。这种方式可以有效防止程序因未捕获的异常而中断,并给出具体的实现代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

问题代码:

if(!Redis::scontains($redisKey, $path)){
                return response()->json([
                    'code' => 99998,
                    'message' => '无操作权限'
                ], 200);
}

if(!Redis::hget($redisKey, 'admin_id')){
                return response()->json([
                     'code' => -1,
                     'message' => '未登录'
                 ], 200);
}

将获取结果放在条件里面做判断报错

解决办法用   try{   }catch(){   }

try{
                $contain = Redis::scontains($redisKey,$path);
            }catch (\Exception $exception){
                $contain = false;
            }
            if(!$contain){
                return response()->json([
                    'code' => 99999,
                    'message' => '无权限操作'
                ],200);
}

try{
            $adminId = Redis::hget($redisKey, 'admin_id');
        }catch (\Exception $e){
            $adminId = 0;
        }

         if(!$adminId){
            return response()->json([
                'code' => -1,
                'message' => '未登录'
            ], 200);
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值