$this->success不能正确返回信息

异常捕获

在异常捕获中不要使用think\Controller类的 error、success 和 redirect 方法,因为上述三个方法会抛出HttpResponseException异常,从而影响正常的异常捕获,例如:

try{
    Db::name('user')->find();
    $this->success('执行成功!');
}catch(\Exception $e){
    $this->error('执行错误');
}
//此时 $this->success() 不会正常执行。

//应该改成
try{
    Db::name('user')->find();
}catch(\Exception $e){
    $this->error('执行错误');
}
$this->success('执行成功!');

如果想要在try catch中自定义抛出异常,需要实例化Think下的Exception,主动抛出异常,catch捕获。

use think\Exception;

try{
    if($name!='admin'){
    	throw new Exception('name 不正确!');
    }
   	//后续代码不会运行,直接到catch
}catch(\Exception $e){
    $this->error($e->getMessage());
}
注意:在try中,使用throw抛出异常后,下边不会正常运行,直接被catch捕获。
参考链接:https://www.kancloud.cn/manual/thinkphp5/126075
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值