Java теңшелетін ерекшеліктері



Java

Java бізге өзгеше ерекшеліктер жасауға мүмкіндік береді, біз оларды ерекше жағдай немесе пайдаланушы анықтаған ерекшелік деп атаймыз. Алдыңғы оқулықта біз қалай қолдануды білдік throw өзіндік ерекшеліктерді жою үшін кілт сөз. Бұл оқулықта біз қажетті жұмыс ағыны негізінде қажет болатын ерекше жағдайларды қалай құруға болатынын білеміз.

Ерекше ерекшеліктер туралы түсіну үшін сізде қарапайым білім болуы керек java try-catch және java лақтыру кілт сөзі.

Ерекше ерекшелік дегеніміз не?

Қажетті шарт негізінде біз ерекше жағдай класын жасай аламыз. Бұл сыныптар ерекше жағдай класын кеңейтуі керек. Пайдаланушы анықтаған класты қолдана отырып, біз ерекше жағдайды қажетті қате туралы хабарламамен бірге көрсете аламыз.

Ерекше ерекшеліктердің қажеттілігі

Біз ерекше ерекшеліктерді негізінен төмендегі себептер бойынша қолданамыз:

  • Белгілі бір жағдайға ерекше жағдайларды тастағымыз келгенде
  • Іскери логикаға немесе жұмыс процесіне тән ерекшеліктер қажет болғанда.

Синтаксис

Төменде ерекше жағдай класын құру синтаксисі келтірілген.

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

ерекше_класс аты - ерекше жағдай класының атауы

Ерекшелігі - ата-аналар сыныбы

Ерекше жағдай класын жасаңыз

Төменде ерекше жағдай класын құрудың қарапайым қадамдары келтірілген:

  • Өзгертпелі java класын жасаңыз ерекшелік сынып атауы Мысалы: InSufficStock (сұралған мөлшер қол жетімді мөлшерден көп болғанда)
  • Ерекше сыныпты класс анықтамасында Exception сыныбымен кеңейтіңіз
  • Сынып ішінде параметрленген конструктор құрыңыз.
  • Параметрленген супер конструкторды шақырыңыз.

мысал

Төменде ерекше жағдай класын жасаудың қарапайым мысалы және басқа сыныптан ерекше жағдайды қалай шақыруға болады. Біз ерекше жағдай класын жасадық Акция жеткіліксіз ол кеңейтеді Ерекшелігі сынып. Ерекше жағдай класы ішінде біз a жасаймыз құрылысшы а бар String параметр ретінде айнымалы және тамаша конструктор. Мұны жасай отырып, ол осы жол мәнін ерекше әдіске шақыру кезінде хабарлама ретінде басып шығарады getMessage (). 

Нақты сыныптан Өнім, шарт болған кезде біз ерекше жағдайды атаймыз qty>availableStock көмегімен дұрыс throw кілт сөз. Біз қоңырау шалу әдісін try-catch блок.

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 !

Төменде Java-да қолданушы анықтайтын ерекше жағдайларды супер конструкторды шақырмай-ақ құрудың тағы бір мысалы келтірілген. Мұнда, суперкласс конструкторын шақырудың орнына, параметрді ерекше жағдай класының конструкторының ішіндегі класс жолының айнымалысына тағайындаймыз. Содан кейін біз басқа әдісті жасаймыз toString, ерекше жағдай болған кезде мәнді жолдық айнымалы ретінде қайтару үшін.

Енді біз негізгі әдістен жаңа ерекшелікті шығарған кезде, ол ерекше жағдай класының конструкторын шақырады және жолға хабарламаны айнымалы тағайындайды. Ерекше жағдайды тапқан кезде, ерекше жағдай String мәніне айналады және қате туралы хабарламаны басып шығарады. Егер біз қолдансақ e.getMessage содан кейін ол оралады NULL өйткені біз суперкласс конструкторын шақырмаймыз.

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

 

анықтамалық