Excepție (IT)

De la Wikipedia, enciclopedia liberă.
Salt la navigare Salt la căutare

În informatică , termenul excepție este folosit pentru a descrie apariția diferitelor tipuri de condiții sau evenimente care modifică fluxul normal de control și execuție a unui microprocesor sau program programabil . Acestea pot fi considerate similare erorilor de execuție din partea unui program executat de procesor .

Descriere

Excepții hardware

În mod tradițional, termenul se aplică condițiilor identificate de hardware : de exemplu, o divizare la zero determină o excepție hardware care întrerupe executarea programului . În general vorbind, se poate spune că o excepție este rezultatul oricărei cauze care împiedică procesorul să execute o instrucțiune .

Excepțiile pot fi împărțite în următoarele tipuri:

  • trap : accesul nu este permis în memorie , împărțirea la 0, deconectarea rețelei , eroare de transfer de date la imprimantă ;
  • întrerupere : cerere adesea asincronă venită din afara microprocesorului care forțează sistemul de operare să întrerupă programul în execuție;
  • apel de sistem : Apeluri de către un program către o funcție de sistem de operare , de exemplu pentru a efectua o operație pe un fișier sau proces .

Prin urmare, excepțiile pot fi neașteptate, prevăzute sau chiar dorite de programator . Când apare o excepție, procesorul suspendă executarea programului curent și trece la o rutină predefinită a sistemului de operare. O astfel de rutină poate avea sarcini speciale (de exemplu, o întrerupere este adesea utilizată pentru a primi date de la periferice ) sau poate termina programul dacă nu poate face nimic pentru a rezolva problema, ca în cazul clasic al diviziunii cu zero.

Excepții software

În ceea ce privește software-ul , termenul de excepție a fost reutilizat în multe limbaje de programare la nivel înalt , cum ar fi Ada , C ++ , Java și Python .

În acest context, o excepție este un mecanism pentru întreruperea executării unui subrutină în cazul unei erori în timpul rulării și propagarea erorii la un nivel superior al programului în sine. În mod figurativ, excepția este aruncată jos și prinsă sau prinsă mai sus.

Acest lucru vă permite să scrieți codul sursă presupunând că nu există defecțiuni, lăsând sarcina de a rezolva orice probleme întâmpinate pe parcurs la rutine specializate. Spre deosebire de abordarea limbajelor mai puțin avansate , cum ar fi standardul C , unde practic fiecare condiție de eroare trebuie verificată „la fața locului”, se obține un cod mai clar și o gestionare a erorilor mai logică. În cazul limbajului orientat obiect , excepțiile sunt obiecte ca toate celelalte și, prin urmare, este posibil să le utilizați pentru a stoca o cantitate considerabilă de informații despre eroarea care a apărut.

În mod normal, programatorul trebuie să prezică în mod explicit care sunt condițiile de eroare care pot genera o excepție și cum să le rezolve. A neglija pentru a prinde o excepție face ca aceasta să fie propagată la cel mai înalt nivel posibil, adică la sistemul de operare, care de obicei termină programul .

Bibliografie

  • ( EN ) Mayan Moughdill și Stamatis Vassiliadis, Precise Interrupts , în IEEE Micro , 1996, pp. 58–67.
Conține o descriere detaliată a diferitelor tipuri de excepții și utilizarea incorectă, dar utilizarea pe scară largă a termenului.
Conține o descriere a ceea ce este o excepție de software, a utilizărilor incorecte ale termenului, a modelelor de execuție și a mecanismelor de captare și gestionare.

Elemente conexe

Informatică Portal IT : accesați intrările Wikipedia care se ocupă cu IT