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;