もくじ
この記事で紹介すること
- 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') ]); }