Salīdzinājuma diagramma
Salīdzinājuma pamats | Kļūda | Izņēmums |
---|---|---|
Pamata | Kļūda rodas sistēmas resursu trūkuma dēļ. | Izņēmums ir saistīts ar kodu. |
Atgūšana | Kļūda nav atgūstama. | Izņēmums ir atgūstams. |
Atslēgvārdi | Programmas koda kļūdas nav iespējams apstrādāt. | Izņēmumi tiek apstrādāti, izmantojot trīs atslēgvārdus "mēģināt", "nozvejot" un "mest". |
Sekas | Tā kā kļūda tiek atklāta, programma tiks izbeigta neparasti. | Kā izņēmums tiek konstatēts, ka tas tiek izmests un aizķerts ar atslēgas vārdiem "mest" un "nozvejas". |
Veidi | Kļūdas tiek klasificētas kā nepārbaudītas. | Izņēmumi tiek klasificēti kā pārbaudīti vai nekontrolēti. |
Pakete | Java, kļūdas ir definētas "java.lang.Error" paketi. | Java gadījumā izņēmumi ir definēti "java.lang.Exception". |
Piemērs | OutOfMemory, StackOverFlow. | Pārbaudītie izņēmumi: NoSuchMethod, ClassNotFound. Neatzīmēti izņēmumi: NullPointer, IndexOutOfBounds. |
Kļūdas definīcija
“ Kļūda ” ir iebūvēto klases “Izmetama” apakšklase. Kļūdas ir kritiskie apstākļi, kas rodas sistēmas resursu trūkuma dēļ, un tos nevar apstrādāt ar programmas kodu. Kļūdas nevar atgūt ar jebkādiem līdzekļiem, jo tās nevar izveidot, izmest, noķert vai atbildēt. Kļūdas izraisa katastrofāla neveiksme, ko parasti nevar novērst ar jūsu programmu.
Kļūdas vienmēr ir nekontrolētas, jo kompilatoram nav zināšanu par tās rašanos. Kļūdas vienmēr rodas izpildes laika vidē. Kļūdu var izskaidrot ar piemēru, programmai ir kļūda, kas saistīta ar kaudzes pārplūdi, no atmiņas kļūdas vai sistēmas crash kļūdas, šāda veida kļūda ir saistīta ar sistēmu. Kods nav atbildīgs par šādām kļūdām. Kļūdas rašanās rezultāts ir tas, ka programma tiek izbeigta neparasti.
Izņēmuma definīcija
“Izņēmums” ir arī iebūvēto klašu “Izvelkams” apakšklase. Izņēmumi ir ārkārtas apstākļi, kas rodas izpildlaika vidē. Lielāko daļu gadījumu izņēmumi ir radušies mūsu programmas koda dēļ. Taču izņēmumus var apstrādāt pati programma, jo izņēmumi ir atgūstami. Izņēmumi tiek risināti, izmantojot trīs atslēgvārdus “mēģināt”, “nozvejas”, “mest”. Izņēmuma rakstīšanas sintakse ir:
mēģiniet {// uzrakstīt kodu šeit} Nozveja (izņēmuma veids) {// rakstiet savu kodu šeit}
Iepriekš minētajā kodā mēģinājuma blokā ierakstītais kods ir kods, kuru vēlaties uzraudzīt izņēmuma gadījumā. Ja izņēmums notiek izmēģinājuma blokā, tas tiek izmests, izmantojot atslēgvārdu “mest”. Izvilkto izņēmumu var pārņemt iepriekš minētā koda “nozvejas” bloks. Izņēmuma veids ir izņēmuma veids.
Vienkārši runājot, varam teikt, ka kļūdas, kas radušās nepareizā koda dēļ, tiek sauktas par izņēmumiem. Piemēram, ja pieprasītā klase nav atrasta vai pieprasītā metode nav atrasta. Šādi izņēmumi ir saistīti ar programmas kodu; sistēma nav atbildīga par šāda veida izņēmumiem. Izņēmumi ir klasificēti kā “pārbaudīti” un “nepārbaudīti”. Nekontrolēti izņēmumi nav zināmi kompilatoram, jo tie notiek izpildlaika laikā, savukārt kompilatoram ir zināšanas par pārbaudītiem izņēmumiem, jo kompilators ir zināms kompilēšanas laikā.
Galvenās kļūdas un izņēmuma atšķirības
- Kļūda rodas tikai tad, ja sistēmas resursi ir nepilnīgi, bet izņēmums rodas, ja kodam ir kāda problēma.
- Kļūdu nekad nevar atgūt, bet izņēmumu var atgūt, sagatavojot kodu, lai apstrādātu izņēmumu.
- Kļūdu nekad nevar apstrādāt, bet izņēmumu var apstrādāt ar kodu, ja kods, kas met izņēmumu, ir ierakstīts izmēģinājuma un nozvejas blokā.
- Ja radusies kļūda, programma tiks izbeigta neparasti. No otras puses, ja izņēmums notiek, programma iznīcinās izņēmumu, un to apstrādā, izmantojot izmēģinājuma un nozvejas bloku.
- Kļūdas nav pārbaudītas, ti, kļūdas nav kompilatoru zināšanām, bet izņēmums ir klasificēts kā pārbaudīts un nekontrolēts.
- Kļūdas ir definētas java.lang.Error paketē, bet izņēmums ir definēts java.lang.Exception.
Secinājums:
Izņēmumi ir programmas kodēšanas kļūdas, un kļūdas ir sistēmas nepareizas darbības rezultāts.