Мы используем 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()
упаковка try... catch:
// Transaction
$exception = DB::transaction(function() {
// try...catch
try {
// Do your SQL here
}
catch(Exception $e) {
return $e;
}
});
return is_null($exception) ? true : false;
Или просто транзакция без попытки... catch
// Transaction only
$exception = DB::transaction(function() {
// Do your SQL here
});
return is_null($exception) ? true : false;