捕获中没有获取异常

时间:2016-08-20 14:49:57

标签: php

我目前有一个持有此方法的类:

public function getUser(
) {
    if (!empty($this->UserName)){
        return $this->UserName;
    } else {
        throw new Exception('Empty UserName');
    }
}

当我在未设置UserName时运行此方法时,catch没有获取抛出的异常,页面只是默默地死掉。

try {
    $example = $obj->getUser();
} catch (Exception $ex) {
    die($ex->getMessage());
}

连连呢? - 我读过documentation但一无所获。

1 个答案:

答案 0 :(得分:1)

这似乎有效,我不得不重新创建我认为是你班级的东西。

<?php

class User {
    public $UserName = '';

    public function getUser() {
        if (empty($this->UserName))
            throw new Exception('UserName is empty!');

        return $this->UserName;
    }
}

try {
    $user = (new User())->getUser();
} catch (Exception $e) {
    echo $e->getMessage();
}

?>

<强>输出

我只能假设你的变量实际上并不是空的。

注意

在PHP中,带有空格的字符串 NOT 被归类为空,

var_dump(empty(' ')); // false

除非你trim

var_dump(empty(trim(' '))); // true

错误报告

如果尚未执行此操作,请启用error_reporting

ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);