
この記事で紹介すること
- try catchを利用する
- リトライ回数を指定
- 失敗時にロールバックしてログ出力
ざっくりこう
try {
$retries = (int)3; // トランザクションリトライ回数
DB::beginTransaction(null, $retries);
// データベースの一連の処理
DB::commit();
$message = Config::get('mail.message.add_user_success');
return $message;
} catch (\Illuminate\Database\QueryException $e) {
// トランザクションでのエラー処理
DB::rollback();
Log::error('WEB /users/me/verify - Class ' . get_class() . ' - PDOException Error. Rollback was executed.' . $e->getMessage());
return response()->json([
'error' => Config::get('error.databaseTransactionRollback')
]);
} catch (\Exception $e) {
// その他のエラー処理
DB::rollback();
Log::error('WEB /users/me/verify - Class ' . get_class() . ' - something went wrong elsewhere.' . $e->getMessage());
return response()->json([
'error' => Config::get('error.databaseSomethingWentWrongError')
]);
}

