我有下面的PHP代码:为什么我会收到“未捕获的异常”错误?
foreach (...) {
try {
$Object = MyDataMapper::getById(123);
if (!$Object->propertyIsTrue()) {
continue;
}
}
catch (Exception $e) {
continue;
}
}
MyDataMapper :: getById()将抛出一个异常,如果没有找到一个数据库记录。下面是该方法的定义:
public static function getById($id) {
$query = "SELECT * FROM table WHERE id = $id";
$Connection = Database::getInstance();
$Statement = $Connection->prepare($query);
$Statement->execute();
if ($Statement->rowCount() == 0) {
throw new Exception("Record does not exist!");
return null;
}
$row = $Statement->fetch();
return self::create($row);
}
当该代码被称为为不存在的数据库记录ID,我得到一个致命的未捕获的异常“异常”的错误。
这是为什么?很显然,我正在捕捉异常......我做错了什么?
我确定引发异常。我是如何处理异常的 - 可能是继续吗?
编辑
感谢来自抖动帮助,以下解决方法解决了这个问题:
if (!$Object->propertyIsTrue()) {
// Workaround to eAccelerator bug 291 (http://eaccelerator.net/ticket/291).
$foo = 555;
continue;
}
请更改标题以更真实地反映实际问题。 – Buggieboy 2009-10-13 19:10:44