se vc tá usando try catch .. tá usando exceptions .. :D
vc pode personalizar algumas exceptions .. de acordo com a criticidade do problema detectado ... exemplo:
Vamos supor que erros críticos devem disparar um email para o webmaster.
Exception_Critical {
function seila() {
mail();
}
}
automaticamente seila vai ser disparado e o email vai ser enviado ..
No try vc pode fazer aninhado ...
try {
try {} catch(Exception_Log $l)
} catch (Exception_Critical $e) {
}
ou em sequencia ...
try {
}
catch (Exception_Critical $e) {}
catch(Exception_Log $l) {}
Nesse caso, o catch executado será o que tiver o exception disparado