Ciao Andrea,
è molto diverso dall'if else, con if..else devi fare ilcontrollo, ogni volta che incapsuli le tue funzioni in un altra funzione o classe (si chiama bubbling degli errori), invece in questo modo effettui il controllo in un solo punto una volta per tutte

Altro esempio

$db = new MySQLDB() ;
$db->addEventListener('onError', $listener) ;

$db->connect() ;
$db->query() ;

etc.etc.
Non faccio più controlli perchè il listener è in attesa di eventi

Per certi versi è anche migliore del sistema delle eccezioni, purtroppo, come spesso accade con le buone idee, ho visto che qualcun altro ci ha già pensato

http://pear.php.net/pepr/pepr-proposal-show.php?id=186
http://blog.php-tools.net/archives/1...t-support.html