Rekomenduojama, 2024

Redaktoriaus Pasirinkimas

Skirtumas tarp klaidų ir išimčių „Java“

„Throwable“ veikia kaip „Java“ klaidų ir išimčių hierarchija. „Klaida“ yra kritinė sąlyga, kurios negalima tvarkyti pagal programos kodą. „Išimtis“ - tai išskirtinė situacija, kurią galima išspręsti pagal programos kodą. Reikšmingas skirtumas tarp klaidos ir išimties yra tai, kad klaida atsiranda dėl sistemos išteklių trūkumo, o dėl kodo atsiranda išimtis . Ištirsime kitus skirtumus tarp klaidų ir išimčių ir palyginimo lentelę.

Palyginimo diagrama

Palyginimo pagrindasKlaidaIšimtis
PagrindinisDėl sistemos išteklių trūkumo atsirado klaida.Išimtis atsiranda dėl kodo.
AtkūrimasKlaida yra neatgaunama.Išimtis išieškoma.
Raktiniai žodžiaiProgramos kodo klaida negali būti tvarkoma.Išimtys tvarkomos naudojant tris raktinius žodžius „pabandyti“, „sugauti“ ir „mesti“.
Pasekmės
Nustatant klaidą programa bus nutraukta neįprastai.Išimtis aptinkama, atitinkamai nukreipiama į „mesti“ ir „sugauti“ raktinius žodžius.
TipaiKlaidos klasifikuojamos kaip nepažymėtas.Išimtys klasifikuojamos kaip patikrintos arba nekontroliuojamos rūšys.
Paketas„Java“ klaidos yra apibrėžtos „java.lang.Error“ pakete.„Java“ išimtys apibrėžtos „java.lang.Exception“.
Pavyzdys„OutOfMemory“, „StackOverFlow“.Patikrintos išimtys: NoSuchMethod, ClassNotFound.
Nepažymėtos išimtys: „NullPointer“, „IndexOutOfBounds“.

Klaidos apibrėžimas

Klaida “ yra vidinės klasės „Throwable“ poklasis. Klaidos yra kritinės sąlygos, atsirandančios dėl sistemos išteklių trūkumo, ir jos negali būti tvarkomos pagal programos kodą. Klaidos negali būti atkurtos jokiomis priemonėmis, nes jos negali būti sukurtos, išmestos, sugautos ar atsakomos. Klaidos atsiranda dėl katastrofiško gedimo, kurį paprastai negalite apdoroti jūsų programa.

Klaidos visada yra nekontroliuojamos, nes kompiliatorius neturi žinių apie jo atsiradimą. Klaidos visada atsiranda vykdymo laiko aplinkoje. Klaida gali būti paaiškinta pavyzdžiu, programa turi kamino perpildymo klaidą, atminties klaidą arba sistemos gedimo klaidą, ši klaida atsiranda dėl sistemos. Kodas neatsako už tokias klaidas. Klaidos atsiradimo pasekmė yra ta, kad programa nutraukiama neįprastai.

Išimties apibrėžimas

„Išimtis“ taip pat yra įmontuotos klasės „Throwable“ poklasis. Išimtys yra išskirtinės sąlygos, kurios atsiranda vykdymo aplinkoje. Daugeliu atvejų išimčių priežastis yra mūsų programos kodas. Tačiau išimtys gali būti tvarkomos pačioje programoje, nes išimtis galima susigrąžinti. Išimtys tvarkomos naudojant tris raktinius žodžius „pabandyti“, „sugauti“, „mesti“. Išimties rašymo sintaksė yra:

 pabandykite {// parašyti savo kodą čia} Sugavimo (išimties tipas) {// parašykite savo kodą čia} 

Pirmiau pateiktame kode bandymo bloke parašytas kodas yra kodas, kurį norite stebėti dėl išimties. Jei išimtis įvyksta bandomame bloke, jis yra išmestas naudojant „mesti“ raktinį žodį. Išimta išimtis gali būti įtraukta į pirmiau minėto kodo „sugavimo“ bloką. „Išimties tipas“ yra įvykusios išimties tipas.

Paprastais žodžiais galime pasakyti, kad klaidos, atsiradusios dėl netinkamo kodo, vadinamos išimtimis. Pvz., Jei nepavyksta rasti pageidaujamos klasės arba nepavyko rasti prašomo metodo. Tokios išimties priežastys yra programos kodas; sistema neatsako už tokias išimtis. Išimtys klasifikuojamos kaip „patikrintos“ ir „nepažymėtos“. Nepažymėtos išimtys nežino kompiliatoriaus, nes jos atsiranda vykdymo metu, o kompiliatorius turi žinių apie patikrintas išimtis, nes kompiliatorius jas laiko kompiliavimo metu.

Pagrindiniai klaidų ir išimčių skirtumai

  1. Klaida atsiranda tik tada, kai sistemos ištekliai yra nepakankami, o išimtis atsiranda, jei kodas turi tam tikrą problemą.
  2. Klaida niekada negali būti susigrąžinta, o išimtis gali būti atkurta rengiant kodą, kad būtų galima tvarkyti išimtį.
  3. Klaida niekada negali būti tvarkoma, tačiau išimtis gali būti tvarkoma kodu, jei išimties kodas yra parašytas bandymo ir sugavimo bloko viduje.
  4. Jei įvyko klaida, programa bus nutraukta neįprastai. Kita vertus, jei įvyksta ši išimtis, programa išmeta išimtį ir ją tvarko naudojant bandymo ir gaudymo bloką.
  5. Klaidos yra nekontroliuojamos, ty klaidos nėra kompiliatorių žinios, o išimtis klasifikuojama kaip patikrinta ir nepažymėta.
  6. Klaidos yra apibrėžtos java.lang.Error pakete, o išimtis yra apibrėžta java.lang.Exception.

Išvada:

Išimtys yra klaidų, padarytų koduojant programą, rezultatai, o klaidos atsirado dėl netinkamo sistemos veikimo.

Top