【发布时间】:2019-12-17 12:35:31
【问题描述】:
我在foreach 循环中的 xyz.php 类和其他 abc.php 类中有一个包装函数。当包装类的内部方法抛出异常时,我的 catch 块不会被执行。
xyz.php 类
foreach($rss as $rs){
try{
//Included file abc.php class
$rs->wrapper();
} catch (exception $e){
//debug message that displays exception.
throw $e;
}
}
abc.php 类
public function wrapper(){
$this->function_throws_exception1();
$this->function_throws_exception2();
}
【问题讨论】:
-
exception is Exception - 这可能会或可能不会取决于操作系统和加载文件的方式(命名空间等)。根据您的描述,听起来好像没有正确找到异常类-您不会因此而收到错误。
-
它只是不会被抓住,不过它更多的是与命名空间和自动加载器有关。
-
@ArtisticPhoenix 感谢您的猜测。我同意这可能与命名空间有关。只需在异常解决之前添加 \。 ``` 捕获 (\exception $e) ```
-
不大写可能没问题,因为它是一个核心类,但即使它们在不同的情况下工作,也应该始终使用它们的呈现方式。在 Linux 上,如果它们与 Autoloader 等文件名相关联,它们可能会区分大小写
标签: php exception try-catch moodle moodle-api