Wir alle verwenden DB::transaction()
für mehrere Einfügeabfragen. Sollte dabei ein Platz try...catch
darin platziert oder eingewickelt werden? Ist es überhaupt notwendig anzugeben, try...catch
wann eine Transaktion automatisch fehlschlägt, wenn etwas schief geht?
Beispiel für das try...catch
Umschließen einer Transaktion:
// 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;
}
Im Gegenteil, DB::transaction()
ein Versuch einpacken ... fangen:
// Transaction
$exception = DB::transaction(function() {
// try...catch
try {
// Do your SQL here
}
catch(Exception $e) {
return $e;
}
});
return is_null($exception) ? true : false;
Oder einfach eine Transaktion ohne zu versuchen ... zu fangen
// Transaction only
$exception = DB::transaction(function() {
// Do your SQL here
});
return is_null($exception) ? true : false;