loops / exception
1.0.1-RC
2016-04-06 12:05 UTC
Requires
- php: >=5.3
- loops/autoloader: ~1.0
Requires (Dev)
- phpunit/phpunit: ~5.0.0
This package is auto-updated.
Last update: 2024-08-29 04:14:31 UTC
README
具有代码和替换的异常的基类。
要求
- 至少PHP 5.3。
- Loops\Autoloader包。
如何使用它
自动加载
如果您没有composer,请调用bootstrap
:::php
require $path_to_package.'/bootstrap.inc.php';
此库使用基于包的自动加载,其中包命名空间目录为(PSR-4)和下划线作为类名目录分隔符(PSR-0)。
扩展
\Loops\Exception\Base 类已被设计为可扩展,以便隔离特定异常的错误代码数组。
:::php
class MyException extends \Loops\Exception\Base
{
public $_messages = array(
'CODE1' => 'Message 1' ,
'CODE2' => 'Message 2' ,
);
}
抛出
然后,您应该能够使用代码和用于 sprintf() 替换的数组作为消息参数来抛出异常。
:::php
// create the exception class
class MyException extends \Loops\Exception\Base
{
public $_messages = array(
'ME101' => 'Invalid configuration' ,
'ME102' => 'Invalid value "%s"' ,
'ME103' => 'Invalid range "%02d;%02d"' ,
);
}
// invalid configuration
$e = new MyException( null , 'ME101' );
$m = $e->getMessage(); // result to 'Invalid configuration'
// invalid value
$e = new MyException( 'foo' , 'ME102' );
$m = $e->getMessage(); // result to 'Invalid value "foo"'
// invalid range
$e = new MyException( array( 0 , 42 ) , 'ME103' );
$m = $e->getMessage(); // result to 'Invalid range "00;42"'
目的
本类的两个目标是
- 在单个位置管理所有异常消息;
- 强制使用每个异常消息的异常代码。
跟踪 Ø
还有一个 getTrace0() 方法可以用来获取抛出异常的行。此方法还包含 getTrace0AsString() 方法。
贡献者
- Pierrot Evrard 即 Loops — https://twitter.com/lxxps
想要贡献?
只需遵循一条规则:挑战自我。