În PHP5, ca și în alte limbi de programare puternice (de exemplu, Java), există un mecanism de ejectare și interceptare a excepțiilor.
Pentru a face acest lucru, puneți codul potențial nesigur în blocul de încercare pentru a prinde excepția. Fiecare încercare trebuie să fie însoțită de cel puțin un bloc de captură.
Blocurile multiple de captură pot fi folosite pentru a capta excepții pentru diferite clase. Cuvinte mai puțin - mai multe acțiuni:
Acest fragment de cod demonstrează excelent procesul de aruncare a unei excepții. Dacă începeți acum pagina cu acest cod, veți primi un mesaj similar cu acesta:
Eroare fatală: excepție negestionat 'excepție' cu mesajul 'Parametrul nu poate fi mai mare, apoi 3!' În C: \ wamp \ www \ privat \ codeforest \ excepții \ index.php: 15 stive: # 0 C: \ wamp \ www \ privat \ codeforest \ excep \ index.php (23): Generic-> TestValue (4) # 1 aruncat în C: \ wamp \ www \ privat \ codeforest \ excep \ index.php pe linia 15
Acest lucru sa datorat lipsei unui bloc de încercare. Să corectăm o situație după cum urmează:
Acum ne-am prins cu succes excepția. Dovada acestui mesaj este pe ecran.
De asemenea, este posibil să se obțină informații detaliate atunci când se interceptează o situație excepțională. Acest lucru este util atunci când aveți zeci sau sute de excepții aruncate. Pentru a găsi rapid codul în cazul în care sa întâmplat acest lucru, puteți utiliza metode speciale:
Acest exemplu nu este mult diferit de trecut. Aici, vom folosi metodele unui obiect generat în blocul de captură pentru a obține informații mai detaliate despre excepție, și anume eroarea mesajului, codul de eroare (dacă există), fișierul și linia în care a fost tratată excepție.
Acum, în principiu, ar trebui să fii clar cu privire la avantajele excepțiilor. Acordați atenție acestui mecanism simplu, care vă poate ajuta să trageți deficiențe chiar și în cele mai "adânci" locuri. În plus, vă oferă informații detaliate despre eroare, care vă vor permite să remediați rapid acest lucru.
În acest exemplu nou, folosesc un sistem de captură excepțional mai complex, care va fi apelat în funcție de al doilea parametru utilizat în blocul CATCH. Acest lucru vă va permite să creați un sistem și mai flexibil, în funcție de tipul de excepție aruncat.
Dar asta nu e tot ce poți face. De asemenea, puteți crea propriile tipuri de excepții. În acest lucru nu este nimic complicat. Trebuie doar să creăm o clasă suplimentară care va moșteni clasa excepțională.
În plus față de metodele moștenite, puteți adăuga și propria dvs. Iată un exemplu:
În acest exemplu, am creat propriul tip CustomException.
Când apelați logError (), în funcție de tipul de eroare, se va efectua acțiunea corespunzătoare (scrierea în jurnal sau scrisul către administrator).
În PHP5, există o metodă set_exception_handler care vă permite să definiți o funcție care interceptează toate excepțiile care nu sunt prinse.
Excluderea PHP este un aspect foarte important care trebuie folosit în fiecare proiect major. Multe cadre PHP utilizează această tehnică pentru a înregistra toate erorile, ceea ce le permite să fie eliminate rapid, construind astfel sisteme cât mai sigure posibil.
Ultimele 5 lecții din rubrica "PHP"
Când vine vorba de securitatea site-ul web, expresia „Filter toate, totul scăpa“ vor fi întotdeauna relevante. Astăzi, să vorbim despre filtrarea datelor.
Expressive 2 acceptă posibilitatea conectării altor componente ZF pe un circuit special. Nu toată lumea îi place această decizie. În acest articol, vom descrie modul de îmbunătățire a procesului de conectare a mai multor module.
Să presupunem că trebuie să trimiteți câteva informații în Google Analytics din scriptul de pe server. Cum se face. Răspunsul este în această notă.
O selecție de mai multe tipuri de nisip PHP. Pe unele veți putea să vă puneți codul online, dar există și soluții pe care le puteți implementa pe site-ul dvs.
Vladislav Egorov
Prin obținerea de informații imediat prin două canale (vedere și auz), eficiența predării este mult mai mare decât învățarea din cărți. Și temele și testele online vă vor permite să gândiți constant în limba pe care o învățați și să vă verificați imediat cunoștințele!
Dacă doriți să învățați HTML mult timp, atunci am o veste bună pentru dvs.!
Dacă ați învățat deja HTML și doriți să treceți mai departe, următorul pas este să învățați tehnologia CSS.
Dacă doriți să înțeleagă conceptele de domeniu si hosting, învață cum să creeze o bază de date, încărca fișiere pe un site web prin intermediul unui server FTP, crea subdomenii, configurați cutiile poștale pentru site-ul și să monitorizeze participarea, acest curs este conceput special pentru tine!