某个类的异常总是命名为该类。一般的异常以_Exception为后缀,如果是更具体的异常则在那之后再加一个单字符串。
例如,一般的示例异常可能是Acme_Example_Exception,然而相关的FooBar和BazDib异常相应的就是Acme_Example_Exception_FooBar和Acme_Example_Exception_BazDib。
Acme/
Example.php
Example/
Exception.php
Exception/
FooBar.php
BazDib.php
继承自Solar_Base的类会自动把错误代码转换成异常类名,然后使用相关的本地字符串显示异常消息。
例如,如果你的本地文件中有这些代码。。。
<?php
return array (
'ERR_FOO_BAR' => "A foo-bar exception occurred.",
'ERR_BAZ_DIB' => "Baz-dib was raised, you should look into it.",
);
。。。然后你像下面这样使用Solar_Base::_exception()抛出一个异常。。。
<?php
class Acme_Example extends Solar_Base {
function kaboom()
{
throw $this->_exception('ERR_FOO_BAR');
}
}
。。。接着,Solar会找到Acme_Example_Exception_FooBar异常类并且抛出它,使用本地文件中的ERR_FOO_BAR消息。

