如何构建一个简单的 PHP 异常类


How to structure a simple PHP Exception class

Hi devs

我有一个简单的PHP OO项目。我有一个例外,他出现了 2 次。像这样:

if (!$x) {
    throw new Exception("Don't use this class here.");
}

我想开发一个类以便像这样编辑此代码:

if (!$x) {
    throw new ClassUsageException();
}

如何使用默认异常消息开发 Excpetion 类?

谢谢

我建议谨慎地创建新的异常类。左右检查大量异常并不好玩。如果你真的觉得有必要,检查已经定义了哪些类型的异常,以及你的异常在该层次结构中的位置,然后扩展类,即让开发人员有机会捕获(有意义的)范围的异常,而不必显式地编写一个接一个的捕获块。

我真的不确定你想用Don't use this class here.实现什么,但它可能是一个 InvalidArgumentException(或者从该异常派生的东西,如果你真的必须的话)。但是,还有其他机制可以防止特定位置的某个类的实例。

您可以扩展Exception

<?php
Class ClassUsageException extends Exception {
    public function __construct($msg = "Don't use this class here.", $code = 0) {
         parent::__construct($msg, $code); //Construct the parent thus Exception.
    }
}

try {
    throw new ClassUsageException();
} catch(ClassUsageException $e) {
   echo $e->getMessage(); //Returns Don't use this class here.
}