joomla异常处理与DB错误

时间:2013-03-28 19:04:18

标签: php joomla joomla2.5

尝试进行异常处理和日志记录。所以,如果我有这样的事情:

$db = JFactory::getDbo();
$query = $db->getQuery(true);

$query->select('*')
$query->from('#__users');

try
{
    $db->setQuery($query);
    $result = $db->loadResult();
}
catch (RuntimeException $e)
{
    $e->getMessage();
    JLog::add('This query failed: '.$query);

}

我的问题是如何最好地测试我的异常代码?取下数据库只会让Joomla输出这个错误而且我从未进入我的异常代码:

Database connection error (2): Could not connect to MySQL.

我希望能够验证异常并记录日志。

2 个答案:

答案 0 :(得分:2)

我就是这样做的。首先在入口点文件中初始化记录器:

JLog::addLogger(
    array('text_file' => 'com_mycom.php'),
    JLog::ALL ^ JLog::ERROR,
    'com_mycom'
);

JLog::addLogger(
    array('text_file' => 'com_mycom.errors.php'),
    JLog::ERROR,
    'com_mycom'
);

然后在模特中使用它:

try
{
    $rows = $this->_db->loadObjectList();
}
catch (Exception $e)
{
    JLog::add($e->getMessage(), JLog::ERROR, 'com_mycom');
    return false;
}

答案 1 :(得分:1)

尝试在try / catch部分的try部分添加throw语句。