În această Java excepții tutorial, afla ce o excepție este în Java, ceea ce este un verificate excepție și modul în care este diferit de la un necontrolate excepție. Vom învăța, de asemenea, câteva bune practici în jurul excepțiilor verificate Java.
Table of Contents1. What is an exception in Java?2. Checked vs unchecked exceptions in Java3. Java exception handling best practices
ce este o excepție în Java?
” o excepție este un eveniment neașteptat care apare în timpul executării unui program care perturbă fluxul normal de instrucțiuni.,”
în Java, toate erorile și excepțiile sunt reprezentate cu clasa Throwable. Atunci când apare o eroare într-o metodă, metoda creează un obiect (de orice subtip al Throwable
) și la sistemul de rulare. Obiectul, numit obiect de excepție. obiectul excepție conține informații despre eroare, inclusiv tipul acesteia și starea programului când a apărut eroarea. Crearea unui obiect de excepție și predarea acestuia sistemului de rulare se numește aruncarea unei excepții.
1. 1., Excepție de manipulare
avem două opțiuni atunci când un obiect excepție este creat în aplicația noastră.
- fie ne vom ocupa în cadrul metodei
- sau putem trece la metoda apelantului pentru a lăsa să se ocupe.aceasta este o decizie foarte importantă care trebuie luată în timp ce se stabilesc responsabilitățile unei metode. O metodă ar trebui să indice în mod clar că toate scenariile excepționale se vor ocupa și pe care nu le va face. Este definit în sintaxa metodei folosind clauza aruncări.pentru a gestiona excepția, trebuie să prindem excepția în secțiunea de captură din blocul try-catch.,
If an exception is not handled in the application, then it will propagate to JVM and JVM will usually terminate the program itself.
Checked vs unchecked exceptions in Java
2.1. Exception Hierarchy
In Java, exceptions are broadly categorized into two sections: checked exceptions and unchecked exceptions.
2.2. Checked Exceptions
Java forces you to handle these error scenarios in some manner in your application code., Ei vor veni imediat în fața ta, odată ce începe compilarea programul. Puteți să le ignorați cu siguranță și să le lăsați să treacă la JVM, dar este un obicei prost. În mod ideal, trebuie să gestionați aceste excepții la un nivel adecvat în interiorul aplicației dvs., astfel încât să puteți informa utilizatorul despre eșec și să-i cereți să reîncerce/ să vină mai târziu.
În general, excepțiile verificate denotă scenarii de eroare care se află în afara controlului imediat al programului. Acestea apar, de obicei, interacționând cu resurse externe/resurse de rețea, de exemplu, probleme de bază de date, erori de conectare la rețea, fișiere lipsă etc.,
Checked exceptions are subclasses of Exception class.
Example of checked exceptions are : ClassNotFoundException, IOException, SQLException and so on.
Checked Exception Example
FileNotFoundException
is a checked exception in Java. Anytime, we want to read a file from filesystem, Java forces us to handle error situation where file may not be present in place.public static void main(String args) { FileReader file = new FileReader("somefile.txt");}
In above case, you will get compile time error with message –
Unhandled exception type FileNotFoundException
.,pentru a face programul capabil de a compila, trebuie să se ocupe de această situație de eroare întry-catch
bloc. Codul de mai jos dat va compila absolut bine.2. 3. Excepții necontrolate
Java oferă, de asemenea, Necontrolateexcepții, ale căror apariții nu sunt verificate de compilator. Ei vor veni în viață / apar în programul dvs., odată ce orice cod buggy este executat.
o metodă nu este forțată de compilator să declare excepțiile necontrolate aruncate de implementarea sa. În general, astfel de metode aproape întotdeauna nu le declară, de asemenea.,
excepțiile necontrolate sunt subclase ale RuntimeException. Exemplu de necontrolat excepții sunt :
ArithmeticException
,ArrayStoreException
,ClassCastException
și așa mai departe.„ciudat lucru este căRuntimeException
este în sine subclasă deException
adică toate necontrolat excepție clasele ar trebui să au fost verificate excepții implicit, DAR ele nu sunt.”exemplu de excepție necontrolat
Checkout codul dat de mai jos. Codul de mai sus nu oferă nici o eroare de timp de compilare., Dar când exemplul, aruncă
NullPointerException
. NullPointerException este o excepție necontrolată în Java. amintiți-vă cea mai mare diferență între excepțiile verificate și cele necontrolate este că excepțiile verificate sunt forțate de compilator și utilizate pentru a indica condiții excepționale care nu sunt sub controlul programului (de exemplu, erori I/o), în timp ce excepțiile necontrolate sunt apărute în timpul rulării și utilizate pentru a indica erori de programare (de exemplu, un pointer nul).,Java excepție de manipulare cele mai bune practici
- excepții verificate pot fi utilizate atunci când o metodă nu poate face ceea ce numele său spune că face. de exemplu, O metodă numită prepareSystem() care pre-popula fișiere de configurare și de a face unele de configurare cu ajutorul ei, pot declara aruncat
FileNotFoundException
ceea ce implică faptul că metoda utilizează fișiere de configurare de sistem de fișiere. - excepțiile verificate în mod ideal nu ar trebui utilizate niciodată pentru erorile de programare, dar absolut ar trebui utilizate pentru erorile de resurse și pentru controlul fluxului în astfel de cazuri.,
- arunca numai acele excepții pe care o metodă nu se poate ocupa de orice mijloc. Metoda ar trebui să încerce mai întâi să-l ocupe de îndată ce se întâlnește. Aruncați excepția numai dacă nu este posibil să se ocupe în interiorul metodei.
- o modalitate bună de a defini semnăturile metodei este de a declara excepții apropiate de numele metodei. Dacă metoda dvs. este numită
openFile
, atunci este de așteptat să aruncațiFileNotFoundException
?. Dacă metoda dvs. este numităfindProvider
, atunci este de așteptat să aruncațiNoSuchProviderException
.,De asemenea, aceste tipuri de excepții ar trebui să fie verificate excepții, deoarece forțează apelantul să se ocupe de problemele inerente semanticii metodelor tale.
- regula este în cazul în care un client poate fi în mod rezonabil de așteptat pentru a recupera de la o excepție, face o excepție verificată. În cazul în care un client nu poate face nimic pentru a recupera de la excepția, face o excepție necontrolată.
În realitate, cele mai multe aplicații vor trebui să recupereze de la destul de mult toate excepțiile inclusiv
NullPointerException
,IllegalArgumentExceptions
și multe alte necontrolat excepții., Acțiunea / tranzacția care a eșuat va fi anulată, dar aplicația trebuie să rămână în viață și să fie gata să servească următoarea acțiune / tranzacție. singura dată când în mod normal este legal să închideți o aplicație este în timpul pornirii. De exemplu, dacă un fișier de configurare lipsește și aplicația nu poate face nimic sensibil fără ea, atunci este legal să închideți aplicația.,
concluzie
În acest post, am învățat diferența dintre excepțiile verificate vs necontrolate în Java, împreună cu modul de gestionare a excepțiilor necontrolate, ierarhia excepțiilor în Java cu exemple.nu ezitați să renunțați la întrebările dvs. în comentarii.
învățare fericită !!,
- Asynchronous and synchronous exceptions
- exception handling using inner classes
- exception handling best practices
- effectively handle NullPointerException
- Custom exceptions in Java
- Java exception doc
Was this post helpful?
Let us know if you liked the post. That’s the only way we can improve.YesNo - excepții verificate pot fi utilizate atunci când o metodă nu poate face ceea ce numele său spune că face. de exemplu, O metodă numită prepareSystem() care pre-popula fișiere de configurare și de a face unele de configurare cu ajutorul ei, pot declara aruncat
Leave a Reply