Ja, uw benadering is correct. Met behulp van Try...catch
kan in sommige gevallen leiden tot schonere en beter leesbare code, maar uw algemene aanpak is prima.
Als uw codefragment afkomstig is van een functie die DB-query's afhandelt en niet veel anders, zou ik de aanpak waarschijnlijk omdraaien:
// Begin Transaction
$this->db->beginTransaction();
// Fire Queries
if(!$query_one->execute()){
$this->db->rollback();
// other clean-up goes here
return;
}
if(!$query_two->execute()){
$this->db->rollback();
// other clean-up goes here
return;
}
$this->db->commit();
Natuurlijk, als je veel moet opruimen voordat je kunt return
, dan is uw oorspronkelijke aanpak beter. Vooral in deze gevallen zou ik kijken naar het gebruik van PDO::ERRMODE_EXCEPTION. Dit heeft enkele extra voordelen, zoals uitzonderingen die de transactie automatisch terugdraaien, tenzij ze worden betrapt.