Ми всі використовуємо DB::transaction()для декількох запитів вставки. Роблячи це, чи try...catchслід поміщати всередину нього або обгортати його? Чи потрібно взагалі включати, try...catchколи транзакція автоматично провалиться, якщо щось піде не так?
Зразок try...catchобгортання транзакції:
// 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;
}
Навпаки, DB::transaction()обгортання спробу ... улов:
// Transaction
$exception = DB::transaction(function() {
// try...catch
try {
// Do your SQL here
}
catch(Exception $e) {
return $e;
}
});
return is_null($exception) ? true : false;
Або просто транзакція без спроби ... зловити
// Transaction only
$exception = DB::transaction(function() {
// Do your SQL here
});
return is_null($exception) ? true : false;