Excepții Excepții 7 excepții și tratamentul standard

În cazul în care programul poate experimenta un alt tip de eroare: depășire, diviziune de la zero, o încercare de a deschide un fișier inexistent, etc. În cazul unor astfel de situații excepționale, programul generează așa-numita excepție și să facă calcule, iar blocul este terminată.

Excepție - este obiectul unui tip special, care caracterizează programul are originea într-o situație excepțională. Acesta poate conține, de asemenea, un parametru care specifică o anumită informație. O excepție notabilă este că acesta este pur și simplu obiecte temporare. De îndată ce acestea sunt prelucrate de către unii handler, acestea sunt distruse.

Dacă excepția nu este prins nicăieri în program, acesta este procesat de TApplicatiun.HandleExctiption. Acesta oferă o reacție standard a programului pentru majoritatea excepțiilor - emiterea de informații sintetizate de utilizator în fereastra de mesaje și de a distruge instanța excepție. Probabil că se confruntă cu astfel de mesaje standard cum ar fi: număr întreg de împărțire la zero, o încercare de a deschide un fișier existent sau nu pentru a încerca să convertească un șir de caractere StrToInt funcție „1.5“ la un întreg.

Dacă doriți, puteți dezactiva apariția acestor mesaje. Pentru a face acest lucru, executați Instrumente de comandă | Debugger Opțiuni, în caseta de dialog rezultată, selectați Excepții de limbă de pagină și opriți-l pe Stop de pe Delphi opțiunea Excepții. În cazul în care nu se iau măsuri, atunci generarea de excepții de calcul de terminare probleme pot adăuga chiar probleme asociate cu asa-numitele resurse în călduri. Prin aceasta se înțelege pierderea heap, fișierele nefinalizate nu sunt șterse fișierele temporare de pe disc și alte „gunoi“. De exemplu, să presupunem că executați un alt program în care există următoarele afirmații:

Deschideți un fișier temporar cu un a.tmp nume, pentru a stoca în orice date de calcul intermediar. La sfârșitul lucrării pe care intenționați să distrugă procedura lui Erase. Ai aloca dinamic memorie unele din noua procedură, care intenționează să-l elibereze când nu vei mai fi necesar, procedura trebuie eliminat. Dar, în cazul în situațiile intermediare etichetate de mai sus puncte, o excepție are loc, calculul va fi întreruptă și Erase procedurile și evacuez nu sunt îndeplinite. Ca urmare, memoria alocată procedurii nou, va fi indisponibil și va rămâne fayla.tmp temporare și inutile deja pe disc.

În plus, programul standard de manipulare excepție este un alt dezavantaj - utilizatorul este complet derutat, ceea ce ar trebui să facă în continuare? Și nu numai un utilizator foarte priceput, care este mesajul în limba engleză pot arunca în stare de șoc. Chiar și persoană cu experiență este uneori imposibil de ghicit ce program este împărțit la zero, și modul în care aceasta poate fi evitată. Probabil toată lumea a primit într-o astfel de situație, chiar și cu ajutorul unor programe realizate profesional, inclusiv Windows.

articole similare