Laravel: Usando try… catch com DB :: transaction ()

Todos nós usamosDB::transaction() para várias consultas de inserção. Ao fazê-lo, umtry...catch ser colocado dentro ou embrulhado? É mesmo necessário incluir umtry...catch quando uma transação falhará automaticamente se algo der errado?

Amostratry...catch agrupando uma transação:

// try...catch
try {
    // Transaction
    $exception = DB::transaction(function() {

        // Do your SQL here

    });

    if(is_null($exception)) {
        return true;
    } else {
        throw new Exception;
    }

}
catch(Exception $e) {
    return false;
}

O oposto, umDB::transaction() encerrando uma tentativa ... captura:

// Transaction
$exception = DB::transaction(function() {
    // try...catch
    try {

        // Do your SQL here

    }
    catch(Exception $e) {
        return $e;
    }

});

return is_null($exception) ? true : false;

Ou simplesmente uma transação sem uma tentativa ... catch

// Transaction only
$exception = DB::transaction(function() {

    // Do your SQL here

});

return is_null($exception) ? true : false;

questionAnswers(3)

yourAnswerToTheQuestion