如何从另一个类方法PHP中捕获异常

时间:2013-08-12 11:15:53

标签: php class oop exception

我在PHP中捕获异常时遇到问题

这是我的代码。

try {
require $this->get_file_name($action);
}

catch (Exception $e) {
//do something//
}

和被调用的方法

private function get_file_name($action) {

    $file = '../private/actions/actions_'.$this->group.'.php';

    if (file_exists($file) === false) {
    throw new Exception('The file for this '.$action.' was not found.');
    }

    else {
    return $file;
    }
}

导致:

Fatal error: Uncaught exception 'Exception' with message $action was not found.'
Exception: The file for this $action was not found.

但是如果我在函数内部放置一个try-catch块并调用该函数,我就能捕获异常没问题。

我做错了什么?

3 个答案:

答案 0 :(得分:4)

如果要在命名空间内捕获Exception,请确保回退到全局命名空间:

...
}(catch \Exception $e) {
  ...
}...

您还可以查看以下资源:

答案 1 :(得分:1)

我无法看到所有的课程主体,但如果您想要使用课堂外的方法,那么它应该是Public not Private。

答案 2 :(得分:0)

尝试检查您尝试存在的文件是否存在:

var_dump($file = '../private/actions/actions_'.$this->group.'.php');

IMO此路径中没有文件