Javalla poikkeus on ei-toivottu tai odottamaton tapahtuma, joka tapahtuu ohjelman suorittamisen aikana. Kun poikkeus tapahtuu, ohjelman suoritus keskeytyy. Näiden lopetusehtojen välttämiseksi voimme Javassa käyttää try catch blockia. Tässä artikkelissa opimme kokeilemaan, saamaan, heittämään ja heittämään Javaa.
Miksi poikkeus tapahtuu?
Poikkeus voi johtua useista syistä, kuten verkkoyhteysongelma, käyttäjän antama huono syöttö, ohjelmassasi olevan tiedoston avaaminen jne.
Poikkeuskäsittelyyn käytetyt lohkot ja avainsanat
1. kokeile Javalla
The yrittää lohko sisältää joukon lauseita, joissa voi tapahtua poikkeus.
try { // statement(s) that might cause exception }>
2. saalis Javassa
Catch-lohkoa käytetään käsittelemään try-lohkon epävarmaa tilaa. Try-lohkoa seuraa aina catch-lohko, joka käsittelee siihen liittyvässä try-lohkossa esiintyvän poikkeuksen.
catch { // statement(s) that handle an exception // examples, closing a connection, closing // file, exiting the process after writing // details to a log file. }>
3. heittää Java sisään
Heitto-avainsanaa käytetään ohjauksen siirtämiseen try-lohkosta catch-lohkoon.
Alla on yllä olevan lähestymistavan toteutus:
Java
// Java program that demonstrates the use of throw> class> ThrowExcep {> > static> void> help()> > {> > try> {> > throw> new> NullPointerException(> 'error_unknown'> );> > }> > catch> (NullPointerException e) {> > System.out.println(> 'Caught inside help().'> );> > // rethrowing the exception> > throw> e;> > }> > }> > public> static> void> main(String args[])> > {> > try> {> > help();> > }> > catch> (NullPointerException e) {> > System.out.println(> > 'Caught in main error name given below:'> );> > System.out.println(e);> > }> > }> }> |
komento node js:ssä
>
>Lähtö
Caught inside help(). Caught in main error name given below: java.lang.NullPointerException: error_unknown>
4. heittää Java sisään
The heittoja avainsanaa käytetään poikkeusten käsittelyyn ilman try & catch -lohkoa. Se määrittää poikkeukset, jotka menetelmä voi heittää soittajalle, eikä käsittele itseään.
Alla on yllä olevan lähestymistavan toteutus:
Java
for silmukan tyypit
// Java program to demonstrate working of throws> class> ThrowsExecp {> > // This method throws an exception> > // to be handled> > // by caller or caller> > // of caller and so on.> > static> void> fun()> throws> IllegalAccessException> > {> > System.out.println('Inside fun(). ');> > throw> new> IllegalAccessException('demo');> > }> > // This is a caller function> > public> static> void> main(String args[])> > {> > try> {> > fun();> > }> > catch> (IllegalAccessException e) {> > System.out.println('caught in main.');> > }> > }> }> |
>
>Lähtö
Inside fun(). caught in main.>
5. vihdoin Javalla
Se suoritetaan catch-lohkon jälkeen. Käytämme sitä yleisen koodin asettamiseen (joka suoritetaan riippumatta siitä, onko poikkeus tapahtunut vai ei), kun on useita catch-lohkoja.
Alla on esimerkki järjestelmän luomasta poikkeuksesta:
Exception in thread 'main' java.lang.ArithmeticException : divide by zero at ExceptionDemo.main(ExceptionDemo.java:5) ExceptionDemo: The class name main:The method name ExceptionDemo.java:The file name java:5:line number>
Alla on yllä olevan lähestymistavan toteutus:
Java
// Java program to demonstrate working of try,> // catch and finally> class> Division {> > public> static> void> main(String[] args)> > {> > int> a => 10> , b => 5> , c => 5> , result;> > try> {> > result = a / (b - c);> > System.out.println('result' + result);> > }> > catch> (ArithmeticException e) {> > System.out.println('Exception caught:Division by zero');> > }> > finally> {> > System.out.println('I am in> final> block');> > }> > }> }> |
>
>
purkaminen linuxissaLähtö
Exception caught:Division by zero I am in final block>
Usein kysytyt kysymykset Try Blockille Javassa
1. Milloin kannattaa käyttää try catch -lohkoja?
Kokeile catch-lohkoja käytetään välttämään poikkeuksia, jotta koodi ei katkea ennen täyttä suoritusta.
2. Mikä on heitto ja heitot Javassa?
Heittoa käytetään ohjauksen siirtämiseen try-lohkosta catch-lohkoon. Kun taas heittoja käytetään poikkeusten käsittelyyn ilman try & catch -lohkoa. Heitot määrittelevät poikkeukset, jotka menetelmä voi heittää soittajalle eikä käsittele itseään.
3. Voiko meillä olla kaksi kiinnityslohkoa?
Kyllä, meillä voi olla useita catch-lohkoja try-lauseilla.