Kokeile Catch Java -ohjelmassa: esimerkki poikkeusten käsittelystä

Sisällysluettelo:

Anonim

Mikä on Java-poikkeus?

Java-poikkeus on tapahtuma, joka keskeyttää ohjelman ohjeiden suorittamisen ja häiritsee normaalia ohjelman suoritusta. Se on objekti, joka kietoo menetelmän sisällä tapahtuneen virhetapahtumatiedon ja se välitetään ajonaikaiselle järjestelmälle. Javassa poikkeuksia käytetään pääasiassa erilaisten virhetilojen osoittamiseen.

Tässä opetusohjelmassa opit-

  • Mikä on poikkeus?
  • Miksi tarvitsemme poikkeusta?
  • Kuinka käsitellä poikkeusta
  • Kokeile Catch Blockia
  • Java Exception -luokan hierarkia
  • Java lopulta estää

Virheitä on kahdenlaisia:

  1. Käännä aikavirheet
  2. Suorituksenaikaiset virheet

Kääntöaikavirheet voidaan jälleen luokitella uudelleen kahteen tyyppiin:

  • Syntaksivirheet
  • Semanttiset virheet

Esimerkki syntaksivirheistä:

Sen sijaan, että julistaisit

int a;ilmoitit virheellisesti sen in a;, mikä kääntäjä heittää virheen.

Esimerkki: Olet ilmoittanut muuttujan

int a;ja joidenkin koodirivien jälkeen ilmoitat jälleen kokonaisluvun int a;. Kaikki nämä virheet korostetaan koodia käännettäessä.

Suorituksenaikaisia ​​virheitä koskeva esimerkki

Suorituksenaikaisia ​​virheitä kutsutaan poikkeusvirheiksi . Jokainen tapahtuma keskeyttää normaalin ohjelman suorituksen.

Esimerkkejä poikkeuksista ovat aritmeettinen poikkeus, Nullpointer-poikkeus, Jaa nollalla -poikkeus jne.

Java-poikkeukset eivät ole kehittäjien hallinnassa.

Napsauta tätä, jos video ei ole käytettävissä

Miksi tarvitsemme poikkeusta?

Oletetaan, että olet koodannut ohjelman päästäksesi palvelimelle. Asiat toimivat hyvin, kun kehitit koodia.

Varsinaisen tuotannon aikana palvelin on poissa käytöstä. Kun ohjelma yritti käyttää sitä, syntyy poikkeus.

Kuinka käsitellä poikkeusta

Toistaiseksi olemme nähneet, että poikkeus on kehittäjän hallinnan ulkopuolella. Mutta koodivirheesi syyttäminen ympäristöasioista ei ole ratkaisu. Tarvitset vankan ohjelmoinnin, joka huolehtii poikkeustilanteista. Tällainen koodi tunnetaan nimellä Exception Handler.

Esimerkissämme hyvä poikkeuskäsittely olisi, kun palvelin ei toimi, muodosta yhteys varmuuskopiointipalvelimeen.

Toteuta tämä antamalla koodi muodostaaksesi yhteyden palvelimeen (Käytä perinteisiä jos ja muuta ehtoja).

Tarkista, onko palvelin poissa käytöstä. Jos kyllä, kirjoita koodi muodostaaksesi yhteyden varmuuskopiointipalvelimeen.

Tällainen koodin järjestäminen "if" ja "else" -silmukan avulla ei ole tehokasta, kun koodissasi on useita Java-poikkeuksia.

class connect{if(Server Up){// code to connect to server}else{// code to connect to BACKUP server}}

Kokeile Catch Blockia

Java tarjoaa sisäänrakennetun poikkeuksellisen käsittelyn.

  1. Normaali koodi menee TRY- lohkoon.
  2. Poikkeusten käsittelykoodi menee CATCH- lohkoon

Esimerkissämme TRY-lohko sisältää koodin, joka muodostaa yhteyden palvelimeen. CATCH-lohko sisältää koodin, joka muodostaa yhteyden varmuuskopiointipalvelimeen.

Jos palvelin on päällä, CATCH-lohkon koodi ohitetaan. Jos palvelin on poissa käytöstä, poikkeus nousee, ja salauslohkon koodi suoritetaan.

Joten näin käsitellään poikkeusta Java-ohjelmassa.

Syntaksi try & catch -toiminnon käyttämiseen

try{statement(s)}catch (exceptiontype name){statement(s)}

Esimerkki

Vaihe 1) Kopioi seuraava koodi editoriin

class JavaException {public static void main(String args[]){int d = 0;int n = 20;int fraction = n/d;System.out.println("End Of Main");}}

Vaihe 2) Tallenna tiedosto ja koota koodi. Suorita ohjelma komennolla java JavaException

Vaihe 3) Aritmeettinen poikkeus - jaetaan nollalla näkyy alla olevan rivin # 5 kohdalla eikä riviä # 6 koskaan suoriteta

Vaihe 4) Katsotaanpa nyt, miten yrittää saada kiinni auttaa meitä käsittelemään tätä poikkeusta. Laitamme poikkeus aiheuttaa viivan koodia osaksi kokeilla lohkoon, jonka jälkeen saaliin lohko. Kopioi seuraava koodi editoriin.

class JavaException {public static void main(String args[]) {int d = 0;int n = 20;try {int fraction = n / d;System.out.println("This line will not be Executed");} catch (ArithmeticException e) {System.out.println("In the catch Block due to Exception = " + e);}System.out.println("End Of Main");}}

Vaihe 5) Tallenna, käännä ja suorita koodi. Saat seuraavan tuloksen

Kuten huomaat, poikkeusta käsitellään ja myös viimeinen koodirivi suoritetaan. Huomaa myös, että linjaa # 7 ei suoriteta, koska heti kun poikkeus on nostettu, ohjausvirta hyppää salpalohkoon.

Huomautus: AritmeticException-objekti "e" sisältää tietoja tapahtuneesta poikkeuksesta, josta voi olla hyötyä palautustoimien suorittamisessa.

Java Exception -luokan hierarkia

Kun yksi saalislauseke on suoritettu, muut ohitetaan, ja toteutus jatkuu try / catch-lohkon jälkeen. Sisäkkäiset saalislohkot seuraavat poikkeushierarkiaa.
  • Kaikki Java-poikkeusluokat laajentavat luokkaa 'Heitettävä'. Heitettävällä on kaksi alaluokkaa, virhe ja poikkeus
  • Virheluokka määrittelee poikkeuksen tai ongelmat, joiden ei odoteta esiintyvän tavanomaisissa olosuhteissa ohjelmassa, esimerkiksi Muistivirhe, Laitteistovirhe, JVM-virhe jne.
  • Exception-luokka edustaa poikkeuksia, joita ohjelmamme voi käsitellä, ja ohjelmamme voidaan palauttaa tästä poikkeuksesta try and catch -lohkolla
  • Ajonaikainen poikkeus on poikkeusluokan alaluokka. Tämäntyyppinen poikkeus edustaa poikkeusta, joka esiintyy ajon aikana ja jota ei voida seurata kokoamisajankohtana. Erinomainen esimerkki samasta on jako nolla- tai nollaosoittimen poikkeuksella jne
  • IO-poikkeus syntyy syöttö- ja tulostustoimintojen aikana
  • Javan keskeytetyt poikkeukset syntyvät useiden ketjujen aikana.
Esimerkki: Yritä yrittää saada kiinni lohkot

Vaihe 1) Kopioi seuraava koodi editoriin.

class JavaException {public static void main(String args[]) {try {int d = 1;int n = 20;int fraction = n / d;int g[] = {1};g[20] = 100;}/*catch(Exception e){System.out.println("In the catch block due to Exception = "+e);}*/catch (ArithmeticException e) {System.out.println("In the catch block due to Exception = " + e);} catch (ArrayIndexOutOfBoundsException e) {System.out.println("In the catch block due to Exception = " + e);}System.out.println("End Of Main");}}

Vaihe 2) Tallenna tiedosto ja koota koodi. Suorita ohjelma komennolla Java JavaException .

Vaihe 3) ArrayIndexOutOfBoundsException luodaan. Muuta int d: n arvoksi 0. Tallenna, käännä ja suorita koodi.

Vaihe 4 ) Aritmeettinen poikkeus on luotava.

Vaihe 5) Kommentoi riviä # 10 riville # 12. Tallenna, käännä ja suorita koodi.

Vaihe 6) Koontivirhe? Tämä johtuu siitä, että Poikkeus on ArithmeticException Poikkeuksen perusluokka. Kaikki ArithmeticExceptionin esiin ottamat poikkeukset voidaan hoitaa myös Exception-luokassa. Joten ArithmeticExceptionin salauslohko ei koskaan saa mahdollisuutta suorittaa, mikä tekee siitä tarpeettoman. Siksi kokoamisvirhe.

Java lopulta estää

Viimeinen lohko suoritetaan riippumatta kokeilulohkossa nostetusta poikkeuksesta . Se on valinnainen käyttää kokeilulohkon kanssa.

 try {statement(s)} catch (ExceptiontType name) {statement(s)} finally {statement(s)}

Siinä tapauksessa, että kokeilulohkossa nostetaan poikkeus, lopuksi lohko suoritetaan kiinniottolohkon suorittamisen jälkeen.

Esimerkki

Vaihe 1) Kopioi seuraava koodi editoriin.

class JavaException {public static void main(String args[]){try{int d = 0;int n =20;int fraction = n/d;}catch(ArithmeticException e){System.out.println("In the catch block due to Exception = "+e);}finally{System.out.println("Inside the finally block");}}}

Vaihe 2) Tallenna, käännä ja suorita koodi.

Vaihe 3) Odotettu tulos. Lopuksi lohko suoritetaan, vaikka poikkeus nousee.

Vaihe 4) Muuta muuttujan d = 1 arvoa. Tallenna, käännä ja suorita koodi ja tarkkaile tulosta. Lomakkeen alaosa

Yhteenveto :

  • Poikkeus on ajonaikaisen virheen , joka katkaisee normaalin virtauksen ohjelman execution.Disruption suorituksen aikana ohjelman kutsutaan kuten virhe tai poikkeus.
  • Virheet luokitellaan kahteen luokkaan
    • Käännösaikavirheet - syntaksivirheet, semanttivirheet
    • Suorituksenaikaiset virheet - poikkeus
  • Vankka ohjelma pitäisi hoitaa kaikki poikkeukset ja jatkamaan normaalia ohjelman toteutukseen. Java tarjoaa sisäänrakennetun poikkeuksellisen käsittelymenetelmän
  • Exception Handler on koodisarja, joka käsittelee poikkeusta . Poikkeuksia voidaan käsitellä Java-sovelluksessa try & catch -toiminnon avulla.
  • Kokeile lohkoa : Normaali koodi menee tähän lohkoon.
  • Saalislohko : Jos normaalissa koodissa on virhe, se menee tähän lohkoon