Java atar və açar söz atar


JavaBaxılıb 54

İstisnaları fərqli şəkildə Java-da həll edə bilərik. Əvvəlki təlimatda biz necə idarə edəcəyimizi gördük istisna try-catch blokundan istifadə etmək. Bu təlimatda java atmaq və atma açar sözündən istifadə edərək istisnaların idarə olunması barədə məlumat əldə edəcəyik.

Java açar söz atın

Əvvəlki dərslərdə ArithmeticException (bölünmənin 0 səhvini idarə etmək üçün), ArrayIndexOutOfBounds (sıra indeks məsələlərini idarə etmək üçün) və s. Kimi daxili istisnaların necə idarə ediləcəyini gördük. istisna java istifadə edərək müəyyən bir şərt üçün atmaq açar söz. Mövcud istisna sinifindən (ArithmeticException, NullPointerException, NumberFormatException və s.) İstifadə edərək bu xüsusi şərtləri həll edə bilərik.

sintaksis

throw new excpetion_class("Exception message");

atmaq - bir istisna atmaq üçün java açar söz

yeni - yeni bir istisna yaratmaq üçün java açar söz

istisna_class  - mövcud müəyyən edilmiş istisna siniflərindən biri ola bilər.

İstisna mesajı - gözlənilməz vəziyyət və ya istisna ilə bağlı xüsusi mesaj

misal

Aşağıdakı nümunədə, bir insana icazə vermədiyi bir istisna üçün yeni bir şərt yaradırıq yaş> 60. Bu vəziyyətdə java throw açar sözündən istifadə edərək ArithmeticException növü yaradırıq və “Yaşlı vətəndaşlara icazə verilmir” adlı xüsusi bir mesaj çap edirik.

public class ThrowExample {

  int age;
  public static void display(int age) {
    if(age>60)
      throw new ArithmeticException("Senior citizens are not allowed");
    else
      System.out.println("Person with age: " + age + " is allowed");
  }
  
  public static void main(String[] args) {
    display(65);
  }

}
Exception in thread "main" java.lang.ArithmeticException: Senior citizens are not allowed
  at ThrowExample.display(ThrowExample.java:6)
  at ThrowExample.main(ThrowExample.java:12)

İstisna saldıqdan sonra qalan ifadələri icra etmir. Məsələn, fərqli bir qiymətə sahib başqa bir metod çağırışımız varsa, bu metodu icra etməyəcəkdir. Bu, ifadəni icra etməyəcəyi deməkdir ekran (45)  əvvəlki açıqlamada bir istisna olduğu üçün.

public static void main(String[] args) {
    display(65);
    display(45);
  }

Java açar söz atır

Java-da açar söz atmaq, istisnanı idarə etmək üçün başqa bir yoldur. Metodun istisnaları yaratma imkanlarının olduğunu göstərmək üçün metod bəyannaməsindəki atış açar sözündən istifadə edirik. Həm yoxlanılmış, həm də yoxlanılmamış istisnaları idarə etmək üçün atışlardan istifadə edə bilərik.

sintaksis

Aşağıda. İstifadə sintaksisidir atır açar söz. İstisnanı metod dediyimiz yerdən try-catch istifadə edərək idarə etmək vacibdir. Əks halda tərtib səhvini atacaq.

class class_name{
  static void method_name() throws ExceptionType{
    
  }
  
  public static void main(String[] args) {
    try {
      method_name();
    }
    catch(ExceptionType e) {
      
    }
  }
}

Atış müddəası bənzərdir try-catch əvvəlki təlimdə öyrəndiyimiz blok. Əsas istifadə atır bir istisna atmağın bir neçə üsulu olduğumuz zaman istifadə edərək hər birini idarə etmək çətin olardı try-catch. Buna görə istifadə edə bilərik atır metod bəyannaməsində və. istifadə edərək istisnaları idarə edin try-catch metodu dediyimiz yerdən blok. Bu metodun çağırıldığı yerdən istisna işləmə tətbiq etməyə məcbur etdiyi başqa bir üstünlükdür.

Bunu bir nümunə ilə başa düşək.

Yoxlanmamış istisnalar nümunəsi

Aşağıda atır istisnanı idarə etmək üçün açar söz. İstisna növündən bəhs edərək istisnanı metod bəyannaməsinə atmalı və sonra istisnadan istifadə edərək idarə etməliyik try-catch metod çağırışında. Bu şəkildə istisna ilə işləmə məsuliyyətini metod axtarana veririk.

public class ThrowsDemo {

  static void display() throws ArithmeticException {
    int result = 10/0;
    System.out.println("Result:" + result);
  }
  
  
  public static void main(String[] args) {
    try {
      display();
    }
    catch(ArithmeticException e) {
      System.out.println("Exception: " + e.getMessage());
    }
    
    System.out.println("Exceptions example");

  }

}
Exception: / by zero
Exceptions example

Yoxlanılmış istisnaların nümunəsi

Aşağıda atışlar açar sözündən istifadə edərək yoxlanılmış istisnalarla işləmə nümunəsi verilmişdir. Bu nümunədə səhv bir fayl adı verdik. Beləliklə, bəyanatı icra etdikdə Fayl f = yeni Fayl (fayl adı) atır IOException FileNotFound üçün spesifikdir.

import java.io.*;


public class ThrowsExample {

  public static void readFile() throws IOException {
    String filename = "E:\\CheckedExceptions.txt";
    int i;
    File f = new File(filename);
    FileReader fr = new FileReader(f);
    
  }
  public static void main(String[] args) {
    try {
      readFile();
    } catch (IOException e) {
      System.out.println(e.getMessage());
    }

  }

}
E:\CheckedExceptions.txt (The system cannot find the file specified)

Atışlardan istifadə edərək birdən çox istisnadan istifadə

İstifadə edərək bir çox istisnaları idarə edə bilərik atır metod imzasında vergül ayırıcı (,) istifadə edərək hər növü ayıraraq açar söz.

Bu nümunə, IOException və ClassNotFoundException-u atma açar sözündən istifadə edərək necə idarə edə biləcəyinizi göstərir.

public class MultiExceptions {

  static void showData() throws IOException,ClassNotFoundException{
    //code that may generate exception
      
  }
  public static void main(String[] args) {
    try {
      showData();
    }
    catch(IOException e) {
      System.out.println("Exception: " + e.getMessage());
    }
    catch(ClassNotFoundException e) {
      System.out.println("Exception: " + e.getMessage());
    }
  }

}

Misal: Atma və atma istifadə

Hər ikisini də istifadə edə bilərik atmaqaçar söz atar Java-da istisnaları idarə etmək. Biz istifadə edirik atır metodu bildirişində açar söz və istifadə edərək içərisinə yeni bir istisna atın atmaq açar söz. > 60 yaş şərtini təmin etdikdə yeni bir istisna gətirir.

public class MultiExceptions {

  static void showData(int age) throws ArithmeticException {
    if(age > 60)
      throw new ArithmeticException("Senior citizen not allowed");
    else
      System.out.println("Age: " + age);	
  }
  public static void main(String[] args) {
    try {
      showData(70);
    }
    catch(ArithmeticException e) {
      System.out.println("Exception: Division by 0 not allowed");
    }
    
  }

}
Exception: Division by 0 not allowed

İlə əlaqəli yeni bir istisna yaratmaq üçün atışdan istifadə edərkən diqqət çəkən bir vacib məqam var yoxlanıldı istisna İstifadə edə bilmərik atmaq yalnız açar söz. İstifadə edərək metod bildirişindəki istisna növünü elan etməyə məcbur edir atır açar söz. Əgər istifadə etmiriksə, onda tərtib xətası ilə nəticələnəcəkdir.

Java açar sözünü atırPin

Aşağıda istifadə etmək üçün doğru yoldur atmaq yoxlanılmış istisnalar üçün tələb olunarsa açar söz. Ümumiyyətlə, istifadə etmək ən yaxşı təcrübədir atır or cəhd edin yoxlanılmış istisna rəftarı üçün.

import java.io.FileNotFoundException;

public class ExceptionDemo {

  public static void print() throws FileNotFoundException {
    throw new FileNotFoundException("File not found");
  }
  public static void main(String[] args) {
    try {
      print();
    } catch (FileNotFoundException e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
    }

  }

}
java.io.FileNotFoundException: File not found
  at ExceptionDemo.print(ExceptionDemo.java:6)
  at ExceptionDemo.main(ExceptionDemo.java:10)

Atma və atma açar sözləri arasındakı fərq

Java atmaqJava atır
Metod daxilində istifadə olunurMetod elanında istifadə olunur
Metod daxilində yeni bir istisna atmaq üçün istifadə olunurMetod daxilində baş verə biləcək bir istisna elan etmək üçün istifadə olunur
Hər dəfə yalnız bir istisna edə bilərikMetod bəyanatında bir anda bir çox istisnaları idarə edə bilərik
Yalnız yoxlanılmamış bir istisna ilə istifadə edilə bilər.Həm yoxlanılmış, həm də yoxlanılmamış istisnalar üçün istifadə edilə bilər
İstisnanı idarə etmək üçün sınaqdan keçirilməyə ehtiyac yoxdurİstənilən vəziyyəti try-catch istifadə edərək idarə etmək çağırılan metodun məsuliyyətidir

arayış

Şərh yaz

Translate »
1