Ich habe try..catch-Blöcke in meinem PHP-Code verwendet, bin mir aber nicht sicher, ob ich sie richtig verwendet habe.
Zum Beispiel sieht ein Teil meines Codes so aus:
try {
$tableAresults = $dbHandler->doSomethingWithTableA();
$tableBresults = $dbHandler->doSomethingElseWithTableB();
} catch (Exception $e) {
return $e;
}
Ich gruppiere also mehrere Datenbankoperationen in demselben Try / Catch-Block, da ich in der Lage sein werde, eine Ausnahme zu behandeln, wenn in einer der Transaktionen eine Ausnahme auftritt.
Ich mache das so, weil ich denke, dass es lesbarer und effizienter ist als:
try {
$tableAresults = $dbHandler->doSomethingWithTableA();
} catch (Exception $e) {
return $e;
}
try {
$tableBresults = $dbHandler->doSomethingWithTableB();
} catch (Exception $e) {
return $e;
}
Ich bin mir jedoch nicht sicher, ob das, was ich tue, eine gute Praxis oder nur ein fauler Weg ist, Ausnahmen zu fangen.
Ich gehe davon aus, dass eine Ausnahme, die eine spezielle Behandlung erfordert, einen eigenen try / catch-Block haben sollte, andernfalls sollte es in Ordnung sein, sie im selben try / catch zu gruppieren.
Meine Frage (n) sind also:
Gibt es einen Vorteil bei der Verwendung von Try / Catch-Blöcken pro Datenbanktransaktion? oder kann ich trotzdem problemlos mehrere Datenbanktransaktionen im selben Try / Catch-Block gruppieren?
Ist es in Ordnung, Try / Catch-Blöcke zu verschachteln? Vielen Dank!
BEARBEITEN
Die return-Anweisung diente hauptsächlich zu Demonstrationszwecken, aber ich verwende auch return-in, catch()
da ich eine AJAX-Anforderung an diese Methode stelle und Javascript ein JSON-Objekt erwartet. Wenn eine Ausnahme auftritt, gebe ich ein leeres JSON-codiertes Array zurück . Ich dachte nur, dass es keinen Wert hinzufügen würde, bestimmten Code in mein Beispiel einzufügen.
FOREIGN KEYS
beteiligt? Hängen Transaktionen in Tabelle B von denen in Tabelle A ab? Das ist es, was Sie sich fragen müssen, um zu entscheiden, ob Sie sie gruppieren können oder nicht.