Zend_Exception有什么意义?

Why was it necessary to have this in Zend Framework, what benefits does it add? Why not just use the normal php exceptions?

The class names of the exceptions can be used when you catch exceptions and you can handle different types of exceptions in different ways. Generally, each module in the zend framework has different exception classes.

For example, if you're using Zend_Queue, the library will return Zend_Queue_Exception exceptions, which extends Zend_Exception. It might also return Zend_Db_Exception exceptions if the exception is related to the queue database adapter.

$options = array(
            'name' => 'queue',
            'driverOptions' => $options
        );
try {       
  $queue = new Zend_Queue($config->queue->adapter, $options);
} catch (Zend_Queue_Exception $e) {
    // handle queue issues
} catch (Zend_Db_Exception $e) {
 // handle db issues
}

I'm sure Zend_Exception extends Exception, so it's nothing more than scoping exceptions for the rest of the Zend framework. Which is a good thing, because you can catch things at different levels, if you don't want to list all possible exceptions you want to catch (at a granular level).