尝试在类的构造函数中抛出新的Exception时出错

时间:2017-04-03 16:28:44

标签: php class exception constructor exception-handling

我有这个班级

namespace core;

class Entity {

    private $type;

    public function __construct($type, $source=null){
        if($this::isValidType($type)){
            $this->type = $type;
        }else{
            throw new Exception("'".$type."' is not a valid type of entity.");
        }
    }


    private static function isValidType($type){
        return in_array($type, array(
            'Thing',
        ));
    }
}

然后我使用这段代码:

$thing = new core\Entity('Not a Thing');

我希望它显示"Not a Thing" is not a valid Type of entity,但我得到

  

致命错误:在{line}上的{root / to / my / file}中找不到类'core \ Exception'。

我错过了什么吗?

1 个答案:

答案 0 :(得分:2)

您正在使用namespace core;因此,使用throw new Exception表示当前Exception下的namespace类,而是使用throw new \Exception

将其更改为:

throw new Exception("'".$type."' is not a valid type of entity.");

:此:

throw new \Exception("'".$type."' is not a valid type of entity.");