4

我无法在 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 块并调用该函数,我能够捕获异常没有问题。

我究竟做错了什么?

4

3 回答 3

9

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

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

您还可以查看以下资源:

于 2015-12-03T12:33:54.263 回答
1

我看不到所有的类主体,但如果你想使用类外的方法,它应该是公共的而不是私有的。

于 2013-08-12T13:03:22.277 回答
-1

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

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

IMO 此路径中没有文件

于 2015-01-21T12:26:57.673 回答