Cum pot gestiona elegant o condiție de eroare?
14 ian. 2011, 22:25:25
Vizualizări: 325
Voturi: 1
Plugin-ul meu îngheață execuția paginii în momentul în care apelează funcțiile de mai jos.
Am două probleme...
1) Cum pot rescrie funcția astfel încât, dacă apare o eroare, plugin-ul să nu oprească încărcarea paginii, ci să returneze un mesaj de eroare?
2) Cum pot identifica care ar putea fi eroarea? Acum doar îngheață fără să afișeze eroarea.
function rseo_get_seo($check, $post){
//returnează 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.'")])');
}
}
Iată încercarea mea de a modifica a doua funcție cu try catch dar primesc o eroare fatală la activarea plugin-ului...
function rseo_doTheParse($heading, $post){
try { //Primesc o eroare FATAL aici. '{' neașteptat
$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 'Excepție prinsă: ', $e->getMessage(), "\n";
}
}

Scott B
5.7K
Comentarii
Toate răspunsurile la întrebare
2
Întrebări similare
2
răspunsuri