loops/exception

特殊错误/异常管理的基类。

1.0.1-RC 2016-04-06 12:05 UTC

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() 方法。

贡献者

想要贡献?

只需遵循一条规则:挑战自我