laravel throw_if throw_unless

laravel throw_if throw_unless

从Laravel 5.5开始引入了两个新的方法,throw_if throw_unless,这两个方法可以让你在抛出异常的时候,一行代码就实现。

先来看下这两个方法的实现

function throw_if($boolean, $exception, $message = '')
{
    if ($boolean) {
        throw (is_string($exception) ? new $exception($message) : $exception);
    }
}

 

function throw_unless($boolean, $exception, $message)
{
    if (! $boolean) {
        throw (is_string($exception) ? new $exception($message) : $exception);
    }
}

throw_if:当第一个参数为true的时候抛出异常。

throw_unless和throw_if正好相反,当第一个参数为false的时候抛出异常。

看一下以前的写法 :

if (!$res){
 throw new Exception('订单保存失败', 32000);
}

现在你可以这样写:

$res = true;
throw_if($res, new Exception('订单保存失败'));
//or
throw_if($res, Exception::class, '订单保存失败');

 

$res = false;
throw_unless($res, new Exception('订单保存失败'));
//or
throw_unless($res, Exception::class, '订单保存失败');

 

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据