2

例外処理とロギングをしようとしています。だから私はこのようなものを持っている場合:

$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);

}

私の質問は、例外コードをテストする最善の方法は? DB を停止すると、Joomla がこのエラーを出力するだけで、例外コードが表示されることはありません。

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

例外を確認してログを出力できるようにしたい。

4

2 に答える 2

2

This is how I do it. First initialise loggers in entry point file:

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'
);

Then use it in models:

try
{
    $rows = $this->_db->loadObjectList();
}
catch (Exception $e)
{
    JLog::add($e->getMessage(), JLog::ERROR, 'com_mycom');
    return false;
}
于 2013-03-28T19:29:21.713 に答える
1

try/catch セクションの try 部分に throw ステートメントを追加してみてください。

于 2013-03-28T20:57:14.583 に答える