Laravel throw_if and throw_unless Helpers

Laravel throw_if and throw_unless Helpers

Coming to Laravel 5.5 is two new helper methods named throw_if and throw_unless, and both are designed to make it easier to throw exceptions.

“Just like all the helpers, throw_if and throw_unless help facilitate clean and expressive code,” TJ Miller said, “In particular, these two helpers could often reduce a conditional block to a single line of code. That’s pretty z.”

Let’s take a look at these helpers and demonstrate how they work:


Throw if, does exactly as it says. If the first param is a boolean and it’s “true,” then throw an exception.

Here is an example use case:

$foo = true;
throw_if($foo, new BarException('Foo is true'));
// or 
throw_if($foo, BarException::class, 'Foo is true'); 

Here is the complete function for reference:

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


The reverse of throw_if is throw_unless and it performs exactly the same except it checks that the first param is false and then throws an exception:

$foo = false;
throw_unless($foo, new BarException('Foo is false'));
// or
throw_unless($foo, BarException::class, 'Foo is false');

And it’s complete signature:

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

These two helpers will be available with the 5.5 release which is due out in July and be sure to join the weekly Laravel Newsletter, so you’ll get notified as soon as it is officially released.

Filed in: Laravel 5.5 / Helpers


Join 31,000+ others and never miss out on new tips, tutorials, and more.

Laravel News Partners

Laravel Jobs

Software Developer
Remote (US & Canada)
😎 Laravel Developer
Jogg, Inc
Junior, Mid, and Senior Software Engineers. Laravel / Vue. Saint Petersburg, FL
Saint Petersburg, FL and Remote
Senior PHP Developer (Laravel)
The Interaction Design Foundation
Fullstack Laravel Engineer (Munich/Remote) 💻
Munich, Germany or Remote