logo

Јава три-цатцх блок

Јава покушај блок

Јава покушати блок се користи за затварање кода који може изазвати изузетак. Мора се користити у оквиру методе.

Ако дође до изузетка у одређеној изјави у блоку три, остатак кода блока се неће извршити. Дакле, препоручује се да не држите код у блоку покушаја који неће изазвати изузетак.

Јава три блок мора бити праћен или цатцх или финалли блоцк.

Синтакса Јава три-цатцх

 try{ //code that may throw an exception }catch(Exception_class_Name ref){} 

Синтакса блока три-финалли

 try{ //code that may throw an exception }finally{} 

Јава блок за хватање

Јава цатцх блок се користи за руковање изузетком декларисањем типа изузетка унутар параметра. Декларисани изузетак мора бити изузетак родитељске класе (тј. Изузетак) или генерисани тип изузетка. Међутим, добар приступ је декларисање генерисаног типа изузетка.

слице јава

Блок цатцх се мора користити само након блока три. Можете користити више блокова цатцх са једним блоком покушаја.

Интерни рад Јава три-цатцх блока

Јава три-цатцх блок

ЈВМ прво проверава да ли је изузетак обрађен или не. Ако се изузетак не обради, ЈВМ обезбеђује подразумевани руковалац изузетком који обавља следеће задатке:

  • Штампа опис изузетка.
  • Штампа траг стека (хијерархија метода где је дошло до изузетка).
  • Узрокује прекид програма.

Али ако програмер апликације обради изузетак, одржава се нормалан ток апликације, тј. извршава се остатак кода.

Проблем без решавања изузетака

Хајде да покушамо да разумемо проблем ако не користимо блок три-цатцх.

Пример 1

ТриЦатцхЕкампле1.јава

 public class TryCatchExample1 { public static void main(String[] args) { int data=50/0; //may throw exception System.out.println('rest of the code'); } } 
Тестирајте одмах

Излаз:

 Exception in thread 'main' java.lang.ArithmeticException: / by zero 

Као што је приказано у горњем примеру, остатак кода се не извршава (у том случају, остатак кода изјава се не штампа).

После изузетка може бити 100 линија кода. Ако се изузетак не обради, сав код испод изузетка неће бити извршен.

Решење руковањем изузетком

Хајде да видимо решење горњег проблема помоћу јава три-цатцх блока.

Пример 2

ТриЦатцхЕкампле2.јава

 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'); } } 
Тестирајте одмах

Излаз:

поново покрените мискл убунту
 java.lang.ArithmeticException: / by zero rest of the code 

Као што је приказано у горњем примеру, остатак кода се извршава, тј остатак кода изјава је штампана.

Пример 3

У овом примеру, такође смо задржали код у блоку три који неће избацити изузетак.

ТриЦатцхЕкампле3.јава

 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); } } } 
Тестирајте одмах

Излаз:

 java.lang.ArithmeticException: / by zero 

Овде можемо видети да ако дође до изузетка у блоку три, остатак кода блока се неће извршити.

Пример 4

Овде обрађујемо изузетак користећи изузетак родитељске класе.

ТриЦатцхЕкампле4.јава

 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'); } } 
Тестирајте одмах

Излаз:

 java.lang.ArithmeticException: / by zero rest of the code 

Пример 5

Хајде да видимо пример за штампање прилагођене поруке о изузетку.

ТриЦатцхЕкампле5.јава

 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'); } } } 
Тестирајте одмах

Излаз:

 Can't divided by zero 

Пример 6

Хајде да видимо пример за решавање изузетка у блоку цатцх.

ТриЦатцхЕкампле6.јава

 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)); } } } 
Тестирајте одмах

Излаз:

 25 

Пример 7

У овом примеру, заједно са блоком три, такође прилажемо код изузетка у блок цатцх.

ТриЦатцхЕкампле7.јава

 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'); } } 
Тестирајте одмах

Излаз:

кнн алгоритам
 Exception in thread 'main' java.lang.ArithmeticException: / by zero 

Овде можемо видети да блок цатцх није садржао код изузетка. Дакле, приложите код изузетка у блок три и користите блок цатцх само за руковање изузецима.

Пример 8

У овом примеру обрађујемо генерисани изузетак (Аритметички изузетак) са другачијим типом класе изузетка (АрраиИндекОутОфБоундсЕкцептион).

ТриЦатцхЕкампле8.јава

 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'); } } 
Тестирајте одмах

Излаз:

 Exception in thread 'main' java.lang.ArithmeticException: / by zero 

Пример 9

Хајде да видимо пример за руковање још једним непровереним изузетком.

ТриЦатцхЕкампле9.јава

 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'); } } 
Тестирајте одмах

Излаз:

 java.lang.ArrayIndexOutOfBoundsException: 10 rest of the code 

Пример 10

Хајде да видимо пример за руковање провереним изузетком.

ТриЦатцхЕкампле10.јава

 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'); } } 
Тестирајте одмах

Излаз:

 File saved successfully