Java try block
Java yrittää lohkoa käytetään sulkemaan koodi, joka saattaa aiheuttaa poikkeuksen. Sitä on käytettävä menetelmän sisällä.
Jos try-lohkon tietyssä käskyssä tapahtuu poikkeus, lohkokoodin loppuosa ei suoriteta. Joten on suositeltavaa olla pitämättä koodia try-lohkossa, joka ei aiheuta poikkeusta.
Java try -lohkon perässä on oltava joko catch tai final block.
Java try-catchin syntaksi
try{ //code that may throw an exception }catch(Exception_class_Name ref){}
Yritä lopuksi -blokin syntaksi
try{ //code that may throw an exception }finally{}
Java catch block
Java catch -lohkoa käytetään poikkeuksen käsittelemiseen ilmoittamalla poikkeuksen tyyppi parametrissa. Ilmoitetun poikkeuksen on oltava pääluokan poikkeus (eli poikkeus) tai luotu poikkeustyyppi. Hyvä tapa on kuitenkin ilmoittaa luotu poikkeustyyppi.
komento node js:ssä
Catch-lohkoa tulee käyttää vain try-lohkon jälkeen. Voit käyttää useita kiinnityslohkoja yhdellä kokeilulohkolla.
Java try-catch -lohkon sisäinen toiminta
JVM tarkistaa ensin, onko poikkeus käsitelty vai ei. Jos poikkeusta ei käsitellä, JVM tarjoaa oletusarvoisen poikkeuskäsittelijän, joka suorittaa seuraavat tehtävät:
- Tulostaa poikkeuskuvauksen.
- Tulostaa pinon jäljen (menetelmien hierarkia, jossa poikkeus tapahtui).
- Aiheuttaa ohjelman lopettamisen.
Mutta jos sovellusohjelmoija käsittelee poikkeuksen, sovelluksen normaali kulku säilyy, eli loput koodista suoritetaan.
Ongelma poikkeuksetta käsittelyssä
Yritetään ymmärtää ongelma, jos emme käytä try-catch -lohkoa.
Esimerkki 1
TryCatchExample1.java
public class TryCatchExample1 { public static void main(String[] args) { int data=50/0; //may throw exception System.out.println('rest of the code'); } }Testaa nyt
Lähtö:
Exception in thread 'main' java.lang.ArithmeticException: / by zero
Kuten yllä olevassa esimerkissä näkyy, loput koodista ei suoriteta (tässä tapauksessa loput koodista lausuntoa ei tulosteta).
Poikkeuksen jälkeen koodia voi olla 100 riviä. Jos poikkeusta ei käsitellä, kaikkea poikkeuksen alla olevaa koodia ei suoriteta.
Ratkaisu poikkeuskäsittelyllä
Katsotaanpa ratkaisua yllä olevaan ongelmaan Java try-catch -blokilla.
Esimerkki 2
TryCatchExample2.java
public class TryCatchExample2 { public static void main(String[] args) { try { int data=50/0; //may throw exception } //handling the exception catch(ArithmeticException e) { System.out.println(e); } System.out.println('rest of the code'); } }Testaa nyt
Lähtö:
java.lang.ArithmeticException: / by zero rest of the code
Kuten yllä olevassa esimerkissä näkyy, loput koodista suoritetaan, eli loput koodista lausunto on painettu.
Esimerkki 3
Tässä esimerkissä säilytimme koodin myös try-lohkossa, joka ei aiheuta poikkeusta.
TryCatchExample3.java
public class TryCatchExample3 { public static void main(String[] args) { try { int data=50/0; //may throw exception // if exception occurs, the remaining statement will not exceute System.out.println('rest of the code'); } // handling the exception catch(ArithmeticException e) { System.out.println(e); } } }Testaa nyt
Lähtö:
java.lang.ArithmeticException: / by zero
Tässä voimme nähdä, että jos try-lohkossa tapahtuu poikkeus, loput lohkokoodista eivät suoriudu.
Esimerkki 4
Tässä käsittelemme poikkeusta käyttämällä yläluokan poikkeusta.
for silmukan tyypit
TryCatchExample4.java
public class TryCatchExample4 { public static void main(String[] args) { try { int data=50/0; //may throw exception } // handling the exception by using Exception class catch(Exception e) { System.out.println(e); } System.out.println('rest of the code'); } }Testaa nyt
Lähtö:
java.lang.ArithmeticException: / by zero rest of the code
Esimerkki 5
Katsotaanpa esimerkki mukautetun viestin tulostamisesta poikkeustilanteessa.
TryCatchExample5.java
public class TryCatchExample5 { public static void main(String[] args) { try { int data=50/0; //may throw exception } // handling the exception catch(Exception e) { // displaying the custom message System.out.println('Can't divided by zero'); } } }Testaa nyt
Lähtö:
Can't divided by zero
Esimerkki 6
Katsotaanpa esimerkkiä poikkeuksen ratkaisemiseksi catch-lohkossa.
TryCatchExample6.java
public class TryCatchExample6 { public static void main(String[] args) { int i=50; int j=0; int data; try { data=i/j; //may throw exception } // handling the exception catch(Exception e) { // resolving the exception in catch block System.out.println(i/(j+2)); } } }Testaa nyt
Lähtö:
25
Esimerkki 7
Tässä esimerkissä liitämme try blockin lisäksi poikkeuskoodin catch-lohkoon.
TryCatchExample7.java
public class TryCatchExample7 { public static void main(String[] args) { try { int data1=50/0; //may throw exception } // handling the exception catch(Exception e) { // generating the exception in catch block int data2=50/0; //may throw exception } System.out.println('rest of the code'); } }Testaa nyt
Lähtö:
Exception in thread 'main' java.lang.ArithmeticException: / by zero
Tässä voimme nähdä, että catch-lohko ei sisältänyt poikkeuskoodia. Liitä siis poikkeuskoodi try-lohkoon ja käytä catch blockia vain poikkeuksien käsittelemiseen.
Esimerkki 8
Tässä esimerkissä käsittelemme luotua poikkeusta (Aritmeettinen poikkeus) erityyppisellä poikkeusluokalla (ArrayIndexOutOfBoundsException).
TryCatchExample8.java
public class TryCatchExample8 { public static void main(String[] args) { try { int data=50/0; //may throw exception } // try to handle the ArithmeticException using ArrayIndexOutOfBoundsException catch(ArrayIndexOutOfBoundsException e) { System.out.println(e); } System.out.println('rest of the code'); } }Testaa nyt
Lähtö:
Exception in thread 'main' java.lang.ArithmeticException: / by zero
Esimerkki 9
Katsotaanpa esimerkkiä toisen valitsemattoman poikkeuksen käsittelemiseksi.
TryCatchExample9.java
public class TryCatchExample9 { public static void main(String[] args) { try { int arr[]= {1,3,5,7}; System.out.println(arr[10]); //may throw exception } // handling the array exception catch(ArrayIndexOutOfBoundsException e) { System.out.println(e); } System.out.println('rest of the code'); } }Testaa nyt
Lähtö:
java.lang.ArrayIndexOutOfBoundsException: 10 rest of the code
Esimerkki 10
Katsotaanpa esimerkkiä valitun poikkeuksen käsittelemiseksi.
TryCatchExample10.java
import java.io.FileNotFoundException; import java.io.PrintWriter; public class TryCatchExample10 { public static void main(String[] args) { PrintWriter pw; try { pw = new PrintWriter('jtp.txt'); //may throw exception pw.println('saved'); } // providing the checked exception handler catch (FileNotFoundException e) { System.out.println(e); } System.out.println('File saved successfully'); } }Testaa nyt
Lähtö:
purkaminen linuxissa
File saved successfully