Într-o situație excepțională, aceasta este situația care apare în timpul executării codului, când nu este clar ce să faceți în continuare sau executarea suplimentară a codului nu are sens. De exemplu, scriptul nu sa putut conecta la baza de date, adăugarea sau selectarea datelor din acesta este evident lipsită de sens. În php în situații similare, deseori funcția nativă returnează pur și simplu fals și continuă executarea codului inactiv. Pentru a evita această situație, puteți verifica valoarea returnată de funcție și, dacă indică o eroare, afișează un avertisment. Această abordare are unele dezavantaje. Mai întâi, pentru a schimba acțiunile efectuate în momentul în care apare o eroare pentru utilizatorul codului dvs., va trebui să vă modificați codul. Ar fi mult mai bine să-l lăsăm să determine mecanismul de a gestiona această eroare. În al doilea rând, valoarea returnată de funcție nu poate fi întotdeauna privită corect sau chiar rămâne necontrolată, atunci în caz de eroare, va fi nevoie de timp pentru a afla cauzele sale. În al treilea rând, nu este întotdeauna adevărat să încerci să rezolvi orice problemă direct într-o metodă sau într-o funcție, deoarece în acest caz, validarea parametrilor și manipularea erorilor pot să aglomereze inițial un cod destul de simplu. Este mult mai bine să spui cumva utilizatorul codului dvs. că ceva a mers prost, permițându-i să decidă ce să facă în acest caz.
Pentru a rezolva toate aceste probleme, a fost inventat un mecanism de tratare a excepțiilor.
excepții
O excepție este un obiect care este o instanță a clasei excepționale încorporate. Acest obiect este creat pentru a stoca informații despre o eroare care a apărut și despre afișarea mesajelor despre aceasta.
Constructorul clasei Exception poate lua doi parametri opționali: un șir care conține un mesaj de eroare și codul său. Clasa Excepție conține, de asemenea, metode care vă ajută să determinați cauza erorii care a avut loc.
- getMessage - returnează un șir care a fost transmis constructorului și conține un mesaj de eroare.
- getCode - returnează codul de eroare (tipul int) care a fost transmis constructorului.
- getFile - returnează numele fișierului în care a fost aruncată excepția.
- getLine - returnează numărul liniei în care a fost aruncată excepția.
- getTrace - returnează o matrice multidimensională care conține o serie de metode ale căror apeluri au dus la generarea unei excepții. Acesta conține, de asemenea, parametrii care au fost transmiși la aceste metode și numerele de linie unde au fost efectuate apelurile.
- getTraceAsStrin g - Returnează versiunea string a datelor returnate de metoda getTrace.
- __toString este o metodă magică numită atunci când o instanță a clasei Excepție este distribuită unui șir.
Generarea excepțiilor
Pentru a arunca o excepție, utilizați cuvântul cheie aruncat și o instanță a clasei Excepție. care este adesea creat imediat după declarația de aruncare. Odată cu aruncarea în limba engleză tradus ca „arunca“, care descrie foarte precis comportamentul operatorului, care poate genera (aruncare) excepție, oferind codul care a cauzat metoda în care se află operatorul să se ocupe de excepție.
Să ne uităm la clasă pentru a obține niște date de configurare dintr-un fișier ini.
Codul pentru această clasă este foarte simplificat și nu există nici o manipulare a erorilor în el. De exemplu, atunci când nu există nici un fișier .ini este formatat incorect, sau lipsa unora din fișierul de date, acest cod nu va funcționa corect.
Fișierul cu care va lucra această clasă poate arăta astfel:
userName = "true-coder"
password = "veryLongAndDifficult"
hostName = "localhost"
Pentru a raporta o greșeală, care va ajuta la clasa de utilizator Config în mod adecvat reacționează la ea, și poate împiedica executarea codului de lucru incorect, utilizați mecanismul de generare excepție.
Să facem câteva modificări în constructorul Config.