Sí, su enfoque es correcto. Usando Try...catch
puede conducir a un código más limpio y legible en algunos casos, pero su enfoque general está bien.
Si su fragmento de código es de una función que maneja consultas de base de datos y no mucho más, probablemente cambiaría el enfoque:
// 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();
Por supuesto, si necesita hacer mucha limpieza antes de que pueda return
, entonces su enfoque original es mejor. Especialmente en estos casos, consideraría usar PDO::ERRMODE_EXCEPTION. Esto tiene algunos beneficios adicionales, como excepciones que revierten automáticamente la transacción a menos que se detecten.