A side-note for the use of exit with finally: if you exit somewhere in a try block, the finally won't be executed. Could not sound obvious: for instance in Java you never issue an exit, at least a return in your controller; in PHP instead you could find yourself exiting from a controller method (e.g. in case you issue a redirect).
Here follows the POC:
<?php
echo "testing finally wit exit\n";
try {
echo "In try, exiting\n";
exit;
} catch(Exception $e) {
echo "catched\n";
} finally {
echo "in finally\n";
}
echo "In the end\n";
?>
This will print:
testing finally wit exit
In try, exiting