私たちは皆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;
または単にtry ... catchを使用しないトランザクション
// Transaction only
$exception = DB::transaction(function() {
// Do your SQL here
});
return is_null($exception) ? true : false;