- Poikkeuskäsittely
- Poikkeuskäsittelyn etu
- Poikkeusluokkien hierarkia
- Poikkeustyypit
- Esimerkki poikkeus
- Skenaariot, joissa voi tapahtua poikkeus
The Poikkeuskäsittely Javassa on yksi vahvimmista mekanismi ajonaikaisten virheiden käsittelemiseksi jotta sovelluksen normaali virtaus voidaan säilyttää.
Tässä opetusohjelmassa opimme Java-poikkeuksista, sen tyypeistä ja eroista valittujen ja tarkistamattomien poikkeusten välillä.
boolean merkkijonoksi java
Mikä on poikkeus Javassa?
Sanakirjan merkitys: Poikkeus on epänormaali tila.
Javassa poikkeus on tapahtuma, joka häiritsee ohjelman normaalia kulkua. Se on esine, joka heitetään ajon aikana.
Mitä on poikkeuskäsittely?
Poikkeuskäsittely on mekanismi, joka käsittelee ajonaikaisia virheitä, kuten ClassNotFoundException, IOException, SQLException, RemoteException jne.
Poikkeuskäsittelyn etu
Poikkeuskäsittelyn ydinetu on ylläpitääksesi sovelluksen normaalia kulkua . Poikkeus häiritsee normaalisti sovelluksen normaalia kulkua; siksi meidän on käsiteltävä poikkeuksia. Mietitään skenaariota:
statement 1; statement 2; statement 3; statement 4; statement 5;//exception occurs statement 6; statement 7; statement 8; statement 9; statement 10;
Oletetaan, että Java-ohjelmassa on 10 käskyä ja lauseessa 5 tapahtuu poikkeus; loput koodista ei suoriteta, eli lauseita 6-10 ei suoriteta. Kuitenkin, kun suoritamme poikkeuskäsittelyn, loput lauseet suoritetaan. Siksi käytämme poikkeuskäsittelyä Java .
Tiedätkö?
|
Java Exception -luokkien hierarkia
Luokka java.lang.Throwable on Java Exception -hierarkian juuriluokka, jonka kaksi alaluokkaa ovat perineet: Exception ja Error. Java Exception -luokkien hierarkia on annettu alla:
Java-poikkeuksien tyypit
Poikkeuksia on pääasiassa kahdenlaisia: valitut ja valitsemattomat. Virhe katsotaan valitsemattomaksi poikkeukseksi. Oraclen mukaan poikkeuksia on kuitenkin kolmenlaisia, nimittäin:
- Tarkistettu poikkeus
- Valitsematon poikkeus
- Virhe
Ero valittujen ja valitsemattomien poikkeusten välillä
1) Tarkistettu poikkeus
Luokat, jotka suoraan perivät Throwable-luokan paitsi RuntimeException ja Error, tunnetaan tarkistetuina poikkeuksina. Esimerkiksi IOException, SQLException jne. Tarkistetut poikkeukset tarkistetaan käännösaikana.
2) Valitsematon poikkeus
Luokat, jotka perivät RuntimeExceptionin, tunnetaan valitsemattomina poikkeuksina. Esimerkiksi ArithmeticException, NullPointerException, ArrayIndexOutOfBoundsException jne. Tarkistamattomia poikkeuksia ei tarkisteta käännösvaiheessa, mutta ne tarkistetaan ajon aikana.
3) Virhe
Virhe on peruuttamaton. Joitakin esimerkkejä virheistä ovat OutOfMemoryError, VirtualMachineError, AssertionError jne.
Java-poikkeusavainsanat
Java tarjoaa viisi avainsanaa, joita käytetään poikkeuksen käsittelemiseen. Seuraavassa taulukossa kuvataan jokainen.
avainsana | Kuvaus |
---|---|
yrittää | 'Try'-avainsanaa käytetään määrittämään lohko, johon meidän tulisi sijoittaa poikkeuskoodi. Se tarkoittaa, että emme voi käyttää try blockia yksinään. Try-lohkon jälkeen tulee joko catch tai final. |
ottaa kiinni | 'Catch'-lohkoa käytetään poikkeuksen käsittelemiseen. Sitä edeltää try block, mikä tarkoittaa, että emme voi käyttää catch blockia yksinään. Sitä voi seurata lopullinen esto myöhemmin. |
vihdoinkin | Lopuksi-lohkoa käytetään ohjelman tarvittavan koodin suorittamiseen. Se suoritetaan riippumatta siitä, käsitelläänkö poikkeusta vai ei. |
heittää | 'Heitä'-avainsanaa käytetään heittämään poikkeus. |
heittoja | 'heittää'-avainsanaa käytetään ilmoittamaan poikkeuksia. Se määrittää, että menetelmässä voi esiintyä poikkeus. Se ei tee poikkeusta. Sitä käytetään aina metodiallekirjoituksen kanssa. |
Esimerkki Java poikkeusten käsittelystä
Katsotaan esimerkki Java-poikkeusten käsittelystä, jossa käytämme try-catch-käskyä poikkeuksen käsittelemiseen.
JavaExceptionExample.java
public class JavaExceptionExample{ public static void main(String args[]){ try{ //code that may raise exception int data=100/0; }catch(ArithmeticException e){System.out.println(e);} //rest code of the program System.out.println('rest of the code...'); } }Testaa nyt
Lähtö:
Exception in thread main java.lang.ArithmeticException:/ by zero rest of the code...
Yllä olevassa esimerkissä 100/0 nostaa aritmeettisen poikkeuksen, joka käsitellään try-catch-lohkolla.
Java-poikkeusten yleiset skenaariot
On annettu joitakin skenaarioita, joissa voi esiintyä tarkistamattomia poikkeuksia. Ne ovat seuraavat:
1) Skenaario, jossa Aritmeettinen poikkeus tapahtuu
Jos jaamme minkä tahansa luvun nollalla, syntyy aritmeettinen poikkeus.
int a=50/0;//ArithmeticException
2) Skenaario, jossa NullPointerException tapahtuu
Jos meillä on nolla-arvo missä tahansa muuttuja , minkä tahansa toiminnon suorittaminen muuttujalle antaa NullPointerExceptionin.
String s=null; System.out.println(s.length());//NullPointerException
3) Skenaario, jossa NumberFormatException esiintyy
Jos jonkin muuttujan tai luvun muotoilu ei täsmää, seurauksena voi olla NumberFormatException. Oletetaan, että meillä on a merkkijono muuttuja, jossa on merkkejä; tämän muuttujan muuntaminen numeroiksi aiheuttaa NumberFormatExceptionin.
String s='abc'; int i=Integer.parseInt(s);//NumberFormatException
4) Skenaario, jossa ArrayIndexOutOfBoundsException esiintyy
Kun taulukko ylittää koonsa, tapahtuu ArrayIndexOutOfBoundsException. ArrayIndexOutOfBoundsExceptionin esiintymiseen voi olla muitakin syitä. Harkitse seuraavia väitteitä.
int a[]=new int[5]; a[10]=50; //ArrayIndexOutOfBoundsException
Java poikkeusten hakemisto
- Java Try-Catch Block
- Java Multiple Catch Block
- Java sisäkkäinen kokeilu
- Java Lopuksi Block
- Java Throw -avainsana
- Java-poikkeuksen leviäminen
- Java heittää avainsanan
- Java-heitto vs
- Java Final vs Lopullinen vs Finalize
- Java-poikkeusten käsittely menetelmän ohituksella
- Java mukautetut poikkeukset