Ми всі використовуємо 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;