Error Handling în PHP

Tutorial PowerPoint

Verificarea erorilor în php este într-o oarecare măsura încorporată în execuţia standard de către server. Cum php este de la versiunea 5 orientat pe obiect, ne putem verifica erorile într-un mod mult mai bun.
Modul în care trebuie să scriem codul într-o structura try – throw – catch este următorul:

1 Try – Codul pe care dorim să îl executăm îl pune într-o structură try. Daca codul scris în structura try se execută atunci codul continuă în mod normal. Dacă nu se reusteşte executarea atunci o excepţie va fi “aruncată”.

2 Throw – Comanda cu care se transmite eroarea. Pentru fiecare throw trebuie să existe un catch.

3 Catch – Este blocul care returnează mesajul de eroare şi crează un obiect ce conţine informaţii despre eroare.

< ?php function checkNum($number) { if($number>1)
{
throw new Exception(„Value must be 1 or below”);
}
return true;
}
try
{
checkNum(2);
echo ‘If you see this, the number is 1 or below’;
}

catch(Exception $e)
{
echo ‘Message: ‘ .$e->getMessage();
}
?>

Ce se întamplă în codul de mai sus:
-funcţia checkNum() verifică dacă un număr este mai mare decat 0, şi dacă este o excepţie va fi aruncată.
-se apelează checkNum() într-un bloc catch
-se aruncă excepţia din checkNum()
-blocul catch prinde eroarea şi creaza un obiect $e de tipul Exception ce contine informaţiile despre eroare
-eroarea este afişată folosindu-se de metoda obiectului $e getMessage()

Crearea unei clase custom de excepţii.
In funcţie de codul executat, o excepţie poate avea anumite caracteristici. Ca urmare tipul obiectului cu informaţiile despre eroare poate fi modificat. Ne putem crea un astfel de tip definind o clasă ce extinde clasa Exception.

< ?php class EroareCustom extends Exception { public function errorMessage() { $msg = 'Eroare pe linia '.$this->getLine().’ in ‘.$this->getFile()
.’: ‘.$this->getMessage().’ nu este o adresa de email valida’;
return $msg;
}
}

$email = „stefan@yahoo…com”;

try
{
if(filter_var($email, FILTER_VALIDATE_EMAIL) === FALSE)
{
throw new EroareCustom($email);
}
}

catch (EroareCustom $e)
{
echo $e->errorMessage();
}
?>

Ce se întâmplă mai sus:
-se crează clasa EroareCustom ca o clasa Exception modificată. Asta înseamnă că a moştenit toate metodele clasei Exception inclusive getMessage(), getLine() şi getMessage.
-funcţia errorMessage este creată în clasa EroareCustom, funcţie ce returnează mesajul nostru.
-se crează variabila $email ce conţine o adresa de email scrisă greşit.
-se execută blocul try şi se arunca eroarea.
-blocul catch prinde excepţia şi o salvează în noul obiect, după care returneaza mesajul.

Linkuri utile:

Tags: , ,



Alte articole si tutoriale:
« »

Oferta limitata eBook gratuit: DUBLEZA-TI VENITUL PRIN CUNOSTINTELE DE IT

Inscrie-te la newsletter si vei primi un eBook gratuit. Vei fi si informat despre ofertele speciale, tutoriale gratis si discount-urile pentru cursurile LEC Academy.

Download ebook
×

Abonare email

Accesul la tutorialele gratuite se face pe baza inscrierii la newsletter. Inscrie-te la newsletter-ul LEC Academy si ai acces la peste 40 de lectii gratuite. Daca doresti, vei fi informat despre ofertele speciale, promotiile si discount-urile pentru cursurile LEC Academy.

Vezi lectii gratis
×