Как можно корректно обработать ошибку и продолжить выполнение?
14 янв. 2011 г., 22:25:25
Просмотры: 325
Голосов: 1
Мой плагин замораживает выполнение страницы в точке вызова указанных ниже функций.
У меня две проблемы...
1) Как можно переписать функцию так, чтобы при возникновении ошибки плагин не останавливал загрузку страницы, а возвращал сообщение об ошибке?
2) Как можно получить информацию о возможной ошибке? Сейчас выполнение просто замирает без вывода ошибки.
function rseo_get_seo($check, $post){
//возвращаем false;
switch ($check)
{
case "h1": return rseo_doTheParse('h1', $post);
case "h2": return rseo_doTheParse('h2', $post);
case "h3": return rseo_doTheParse('h3', $post);
case "img-alt": return rseo_doTheParse('img-alt', $post);
}
}
function rseo_doTheParse($heading, $post)
{
$content = $post->post_content;
if($content=="") return false;
$keyword = trim(strtolower(rseo_getKeyword($post)));
@$dom = new DOMDocument;
@$dom->loadHTML(strtolower($post->post_content));
$xPath = new DOMXPath(@$dom);
switch ($heading)
{
case "img-alt": return $xPath->evaluate('boolean(//img[contains(@alt, "'.$keyword.'")])');
default: return $xPath->evaluate('boolean(/html/body//'.$heading.'[contains(.,"'.$keyword.'")])');
}
}
Вот моя попытка изменить вторую функцию с try catch, но я получаю фатальную ошибку при активации плагина...
function rseo_doTheParse($heading, $post){
try { //Я получаю FATAL ошибку здесь. unexpected '{'
$content = $post->post_content;
if($content=="") return false;
$keyword = trim(strtolower(rseo_getKeyword($post)));
@$dom = new DOMDocument;
@$dom->loadHTML(strtolower($post->post_content));
$xPath = new DOMXPath(@$dom);
switch ($heading)
{
case "img-alt": return $xPath->evaluate('boolean(//img[contains(@alt, "'.$keyword.'")])');
default: return $xPath->evaluate('boolean(/html/body//'.$heading.'[contains(.,"'.$keyword.'")])');
}
}
catch (Exception $e)
{
echo 'Поймано исключение: ', $e->getMessage(), "\n";
}
}

Scott B
5.7K
Комментарии
Все ответы на вопрос
2
0
Похожие вопросы