gpt4 book ai didi

php - 为什么我的异常没有被 catch 捕获?

转载 作者:IT王子 更新时间:2023-10-29 00:00:10 30 4
gpt4 key购买 nike

我有一些看起来像这样的代码

# Try to import file
try
{
DataManager::fileImport($_FILES['datafile']['tmp_name'],
$_POST['zones'], $_POST['statuses']);
}
catch(Exception $e)
{
print 'Herp.';
$response->body = Helpers::getVarDump($e);
}

DataManager::fileImport 实际上是一个抛出正常异常的单行函数:

static function fileImport($filepath, $zones, $statuses)
{
throw new Exception('SOME EXCEPTION');
}

但我明白了

Fatal error: Uncaught exception 'Exception' with message 'SOME EXCEPTION'...

来自 try block 。还有“疱疹”。永远不会打印。为什么异常不触发 catch block ?


编辑:我应该提到我正在使用 Tonic和 PHP 5.3.9

再次编辑:这是 DataManager(为了匿名,名称替换为 ...)http://pastebin.com/daHWBJDC

最佳答案

解决方案

我忘记在包含 try/catch 的文件中指定 use\Exception;

思考

我知道出于很多原因,PHP 中的每个命名空间都应该定义自己的异常,但我仍然觉得奇怪的是 catch(Exception e) 时没有导致任何错误未定义该上下文中的异常。如果我要编写 new Exception(),我会得到一个错误。

好吧,至少我学到了一些东西。

关于php - 为什么我的异常没有被 catch 捕获?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9097345/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com