某个类的异常总是命名为该类。一般的异常以_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
消息。