我有一些看起来像这样的代码
# 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);
}
Run Code Online (Sandbox Code Playgroud)
DataManager::fileImport 字面上是一个单行函数,抛出一个正常的异常:
static function fileImport($filepath, $zones, $statuses)
{
throw new Exception('SOME EXCEPTION');
}
Run Code Online (Sandbox Code Playgroud)
然而我明白了
致命错误:未捕获异常'Exception',消息'SOME EXCEPTION'...
从try块.也是'赫普.' 永远不会打印.为什么Exception不会触发catch块?
编辑:我应该提到我正在使用Tonic和PHP 5.3.9
再次编辑:这是DataManager(名称替换为...匿名)http://pastebin.com/daHWBJDC
Hub*_*bro 46
我忽略了use \Exception;在包含try/catch的文件中指定.
我知道PHP中的每个命名空间都应该有很多原因来定义它自己的Exception,但我仍然觉得奇怪的是,在没有定义该上下文catch(Exception e)时没有引起任何错误Exception.如果我写,new Exception()我会得到一个错误.
哦,好吧,至少我学到了一些东西.
| 归档时间: |
|
| 查看次数: |
6564 次 |
| 最近记录: |