尝试进行异常处理和日志记录。所以,如果我有这样的事情:
$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.
我希望能够验证异常并记录日志。
答案 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语句。