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

Todos usamosDB::transaction() para múltiples consultas de inserción. Al hacerlo, debería untry...catch ser colocado dentro de él o envolviéndolo? ¿Es incluso necesario incluir untry...catch ¿Cuándo una transacción fallará automáticamente si algo sale mal?

Muestratry...catch envolviendo una transacción:

// 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;
}

Lo contrario, unDB::transaction() envolviendo un intento ... atrapar:

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

        // Do your SQL here

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

});

return is_null($exception) ? true : false;

O simplemente una transacción sin probar ... atrapar

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

    // Do your SQL here

});

return is_null($exception) ? true : false;

Respuestas a la pregunta(3)

Su respuesta a la pregunta