Erorile sunt interdicția utilizatorilor și programatorilor. În mod evident, dezvoltatorii nu doresc ca programele lor să cadă la fiecare rundă, iar utilizatorii sunt acum obișnuiți să aibă erori în programele pe care le acceptă cu râvnă să plătească prețul pentru software care va avea aproape sigur cel puțin o eroare în aceasta. Java este conceput pentru a oferi programatorului o șansă sportivă în proiectarea unei aplicații fără erori. Există excepții pe care programatorul le va cunoaște că este o posibilitate când o aplicație interacționează cu o resursă sau cu un utilizator și aceste excepții pot fi gestionate. Din păcate, există excepții pe care programatorul nu le poate controla sau pur și simplu trece cu vederea. Pe scurt, toate excepțiile nu sunt create egale și, prin urmare, există mai multe tipuri pentru care un programator să se gândească.
O excepție este un eveniment care face ca programul să nu poată curge în execuția prevăzută. Există trei tipuri de excepții: excepția verificată, eroarea și excepția de rulare.
Excepția verificată
Excepțiile verificate sunt excepții la care ar trebui să facă față o aplicație Java. De exemplu, Dacă o aplicație citește date dintr-un fișier, ar trebui să poată gestiona FileNotFoundException
. La urma urmei, nu există nicio garanție că fișierul preconizat va fi acolo unde se presupune că se află. Orice s-ar putea întâmpla în sistemul de fișiere, despre care o aplicație nu ar avea niciun indiciu.
Pentru a face acest exemplu cu un pas mai departe. Să spunem că folosim FileReader
clasa pentru a citi un fișier de caractere. Dacă te uiți la Definiția constructorului FileReader în aplicația Java veți vedea că este semnătura metodei:
public FileReader (Nume fișier String) aruncă FileNotFoundException.
După cum vedeți constructorul afirmă în mod specific că FileReader
constructor poate arunca a FileNotFoundException
. Acest lucru are sens, deoarece este foarte probabil că nume de fișier
Șirul va fi greșit din când în când. Priviți următorul cod:
public static void main (String [] args) { FileReader fileInput = null; // Deschideți fișierul de intrare. fileInput = new FileReader ("Untitled.txt"); }
Sintactic, afirmațiile sunt corecte, dar acest cod nu va fi întocmit niciodată. Compilatorul cunoaște FileReader
constructor poate arunca a FileNotFoundException
și este de competența codului apelant să gestioneze această excepție. Există două opțiuni - în primul rând putem trece excepția din metoda noastră, specificând a aruncă
clauza de asemenea:
public static void main (args String []) aruncă FileNotFoundException { FileReader fileInput = null; // Deschideți fișierul de intrare. fileInput = new FileReader ("Untitled.txt"); }
Sau ne putem descurca de fapt cu excepția:
public static void main (String [] args) { FileReader fileInput = null; încerca. { // Deschideți fișierul de intrare. fileInput = new FileReader ("Untitled.txt"); } captură (ex. FileNotFoundException) { // spuneți utilizatorului să meargă să găsească fișierul. } }
Aplicațiile Java bine scrise ar trebui să poată face față excepțiilor verificate.
Erori
Al doilea tip de excepție este cunoscut sub numele de eroare. Când apare o excepție JVM va crea un obiect de excepție. Aceste obiecte derivă toate din Dispensabil
clasă. Dispensabil
clasa are două subclase principale - Eroare
și Excepție
. Eroare
clasa denotă o excepție cu care o aplicație nu este probabil să poată face față.
Aceste excepții sunt considerate rare. De exemplu, JVM s-ar putea să rămână fără resurse, datorită faptului că hardware-ul nu poate face față tuturor proceselor cu care este ocupat. Este posibil ca aplicația să surprindă eroarea pentru a notifica utilizatorul, dar în mod obișnuit, aplicația va trebui să se închidă până când se va rezolva problema de bază.
Excepții de rulare
A excepție de rulare apare pur și simplu pentru că programatorul a făcut o greșeală. Ați scris codul, totul arată bine compilatorului și atunci când mergeți să rulați codul, acesta cade din cauza lui a încercat să acceseze un element al unui tablou care nu există sau o eroare logică a determinat o metodă să fie apelată cu un null valoare. Sau orice număr de greșeli pe care le poate face un programator. Dar este în regulă, observăm aceste excepții prin testare exhaustivă, nu?
Erorile și excepțiile de execuție se încadrează în categoria excepțiilor marcate.