nimayneb/exceptionist

Exceptionist - 使用接口抛出有意义的语义异常

1.3.0 2019-04-19 12:05 UTC

This package is auto-updated.

Last update: 2024-09-20 00:26:14 UTC


README

Exceptionist

使用接口抛出有意义的语义异常

异常类名称不包含“Exception”一词。这是冗余信息,更容易理解和阅读。

用法

use JBR\Exceptionist\InvalidArgument;
use JBR\Exceptionist\InvalidityReason:

function throwsAnException() {
    throw new InvalidArgument('An Argument is invalid');
}

try {
    throwsAnException();
} catch (InvalidityReason $e) {
    echo $e->getMessage();
}
use JBR\Exceptionist\EmptyArgument;
use JBR\Exceptionist\InvalidityReason:
use JBR\Exceptionist\DeficiencyReason;

function throwsAlsoAnException() {
    throw new EmptyArgument('An Argument is empty');
}

try {
    throwsAlsoAnException();
} catch (InvalidityReason|DeficiencyReason $e) {
    echo $e->getMessage();
}

异常类型

    • 设置了某些内容,但没有实际内容
  • 无效
    • 设置了某些内容,但包含无效字符或格式不正确
  • 未知
    • 设置了某些内容,但它是未知的(不是无效的)
  • 缺失
    • 设置了某些内容,但缺少需求
  • 超时
    • 设置了某些内容,但在特定时间窗口内无法读取

原因类型

  • 缺失
    • 在特定时间窗口内无法访问某些内容
  • 兼容性
    • 某些内容由于兼容性问题而损坏
  • 不足
    • 需要某些内容,但它是缺失的
  • 无效
    • 需要某些内容,但它无效

作用域类型

  • 访问
    • 具有访问性的某些内容
  • 操作
    • 具有操作的某些内容
  • 参数
    • 具有方法参数的某些内容
    • 具有对象参数的某些内容
    • 具有类实例的某些内容
  • 配置
    • 具有配置的某些内容
  • 声明
    • 具有声明的某些内容
  • 定义
    • 具有定义的某些内容
  • 依赖
    • 具有依赖的某些内容
  • 接口
    • 具有接口的某些内容
  • 方法
    • 具有对象方法的某些内容
  • 对象
    • 具有对象的某些内容
  • 属性
    • 具有对象属性的某些内容
  • 引用
    • 具有引用的某些内容
  • 需求
    • 具有需求的某些内容
  • 返回
    • 具有对象返回值的某些内容
    • 具有方法返回值的某些内容
  • 特性
    • 具有特性的某些内容
  • 类型
    • 具有返回值类型的某些内容
    • 具有方法类型的某些内容
    • 具有对象类型的某些内容
    • 具有值的某些内容

为您的应用程序组合异常

为您的应用程序创建一个接口或特性,这样您就只能捕获应用程序的异常。

interface YourApplication {
}

创建您的异常

use JBR\Exceptionist\InvalidParser;

class InvalidParserType extends InvalidParser implements YourApplication {

}