Es el simple hecho de poder mantener un control más estricto del flujo de tu aplicación, con excepciones puedes garantizar que si algo no esta bien, tengas la forma de poder manejar los errores, en lugar de estar comprobando valores, por ejemplo antes con PEAR se tenía que hacer algo así:
Código PHP:
Ver original$db =& DB::connect($dsn, $options);
if (PEAR::isError($db)) {
}
Eso lo que hace es parar la aplicación en ese punto y mostrar el error, si quieres mostrar un error más personalizado o algo más de información en un log es muy complicado manejarlo, una excepcion como tal tiene toda la información, ruta del error, stack trace, y puedes cacharla en código y manejarla de una forma más sencilla.