Java Xüsusi İstisnalar


JavaBaxılıb 59

Java, xüsusi istisnalar və ya istifadəçi tərəfindən müəyyən edilmiş istisnalar adlandırdığımız öz istisnalarımızı yaratmağa imkan verir. Əvvəlki təlimdə, istifadə qaydalarını necə öyrəndik throw öz istisnalarımızı atmaq üçün açar söz. Bu təlimatda tələb olunan iş axınına əsasən tələb etdiyimiz xüsusi istisnaların necə yaradılacağını öyrənəcəyik.

Xüsusi istisnaları anlamaq üçün əsas biliklərə sahib olmalısınız java cəhd edin və java atın açar söz.

Xüsusi bir istisna nədir

Tələb olunan şərtə əsasən xüsusi bir istisna sinfi yarada bilərik. Bu siniflər İstisna sinifini genişləndirməlidir. İstifadəçi tərəfindən müəyyən edilmiş sinifdən istifadə edərək, tələb olunan səhv mesajı ilə birlikdə istisna şərtini də təyin edə bilərik.

Xüsusi istisnalara ehtiyac

Xüsusi istisnaları əsasən aşağıdakı səbəblərdən istifadə edirik:

  • Müəyyən bir şərt üçün istisnalar atmaq istədikdə
  • İş məntiqi və ya iş axını üçün xüsusi istisnalar istədiyimiz zaman.

sintaksis

Aşağıda xüsusi bir istisna sinfi yaratmaq sintaksisidir.

class exception_classname extends Exception {
  
  //constructor
  exception_classname(String s) {
    super(s);
  }
}

istisna_sınıf adı - xüsusi istisna sinifinin adı

İstisna - valideyn sinfi

Xüsusi bir istisna sinfi yaradın

Aşağıda xüsusi bir istisna sinfi yaratmaq üçün sadə addımlar verilmişdir:

  • Xüsusi bir java sinfi yaradın istisna sinif adı Məsələn: InSufficStock (tələb olunan miqdar mövcud miqdardan çox olduqda)
  • Xüsusi sinfi, sinif tərifində İstisna sinfi ilə genişləndirin
  • Sinif daxilində parametrləşdirilmiş bir konstruktor yaradın.
  • Parametrləşdirilmiş super konstruktoru axtarın.

misal

Aşağıda xüsusi bir istisna sinifinin yaradılmasına və başqa bir sinifdən istisnanın necə çağırılacağına dair sadə bir nümunə verilmişdir. Xüsusi bir istisna sinfi yaratdıq Səhmdar kifayət deyil bu uzanır İstisna sinif. Xüsusi istisna sinifində a konstruktor ilə Sim bir parametr olaraq dəyişən və super qurucu. Bunu etməklə, istisna metodunu çağırarkən bu sətir dəyərini mesaj olaraq yazdırır getMessage (). 

Həqiqi sinifdən Məhsul, şərt olduqda xüsusi istisna deyirik qty>availableStock istifadə edərək doğrudur throw açar söz. İstifadə edərək zəng edən üsulu əlavə edirik try-catch blok.

class InsufficientStock extends Exception {
  
  //constructor
  InsufficientStock(String s) {
    super(s);
  }
}
public class Product {

  int availableStock = 10;
  public void checkProductStock(int qty) throws InsufficientStock {
    if(qty > availableStock)
      throw new InsufficientStock("Insufficient stock available !");
    else
      System.out.println("Product stock is available");
  }
  public static void main(String[] args) {
    Product p = new Product();
    try {
      p.checkProductStock(15);
    } catch (InsufficientStock e) {
      System.out.println(e.getMessage());
    }

  }

}
Insufficient stock available !

Aşağıda super konstruktoru çağırmadan javada istifadəçi tərəfindən müəyyən edilmiş istisnalar yaratmaq üçün başqa bir nümunə var. Burada, super sinif qurucusunu çağırmaq əvəzinə, parametri xüsusi istisna sinfinin konstruktorunun daxilindəki sinif sətri dəyişəninə təyin edirik. Sonra başqa bir metod yaradırıq toString, bir istisna olduqda dəyəri bir simli dəyişən kimi qaytarmaq.

İndi əsas metoddan yeni istisnanı atdığımızda, xüsusi istisna sinfinin konstruktorunu çağırır və mesajı dəyişənə satır üçün təyin edir. İstisnanı tutduqda, istisna obyekti bir String dəyərinə çevrilir və səhv mesajını yazdırır. İstifadə etsək e.getMessage sonra qayıdır null çünki biz super sinif qurucusu deyilik.

class OwnException extends Exception {
  String message;
  OwnException(String s) {
    message = s;
  }
  
  public String toString() {
    return ("Exception: " + message);
  }
}
public class CustomException {

  public static void main(String[] args) {
    try {
      throw new OwnException("My own custom exception");
    }
    catch(Exception e) {
      System.out.println(e);
    }

  }

}
Exception: My own custom exception

 

arayış

Şərh yaz

Translate »