Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> Java

जावा में कस्टम अपवाद

आप जावा में अपने स्वयं के अपवाद बना सकते हैं और उन्हें उपयोगकर्ता द्वारा परिभाषित अपवाद या कस्टम अपवाद के रूप में जाना जाता है।

उपयोगकर्ता द्वारा परिभाषित अपवाद बनाने के लिए उपर्युक्त वर्गों में से एक का विस्तार करें। संदेश प्रदर्शित करने के लिए toString() . को ओवरराइड करें विधि या, स्ट्रिंग प्रारूप में संदेश को दरकिनार करते हुए सुपरक्लास पैरामीटरयुक्त कंस्ट्रक्टर को कॉल करें।

MyException(String msg){
   super(msg);
}
Or,
public String toString(){
   return " MyException [Message of your exception]";
}

फिर, अन्य वर्गों में जहां भी आपको इस अपवाद को उठाने की आवश्यकता होती है, बनाए गए कस्टम अपवाद वर्ग का एक ऑब्जेक्ट बनाएं और, थ्रो कीवर्ड का उपयोग करके अपवाद को फेंक दें।

MyException ex = new MyException ();
If(condition……….){
   throw ex;
}

कस्टम चेक किया गया और कस्टम अनचेक किया गया

  • सभी अपवाद थ्रोएबल के बच्चे होने चाहिए।

  • यदि आप एक चेक अपवाद लिखना चाहते हैं जो स्वचालित रूप से हैंडल या डिक्लेयर नियम द्वारा लागू किया गया है, तो आपको अपवाद को विस्तारित करने की आवश्यकता है कक्षा।

  • यदि आप एक रनटाइम अपवाद लिखना चाहते हैं, तो आपको RuntimeException . को विस्तारित करने की आवश्यकता है कक्षा।

उदाहरण:कस्टम चेक किया गया अपवाद

निम्नलिखित जावा प्रोग्राम प्रदर्शित करता है कि कस्टम जाँच अपवाद कैसे बनाया जाता है।

import java.util.Scanner;
class NotProperNameException extends Exception {
   NotProperNameException(String msg){
      super(msg);
   }
}
public class CustomCheckedException {
   private String name;
   private int age;
   public static boolean containsAlphabet(String name) {
      for (int i = 0; i < name.length(); i++) {
         char ch = name.charAt(i);
         if (!(ch >= 'a' && ch <= 'z')) {
            return false;
         }
      }
      return true;
   }
   public CustomCheckedException(String name, int age){
      if(!containsAlphabet(name)&&name!=null) {
         String msg = "Improper name (Should contain only characters between a to z (all small))";
         NotProperNameException exName = new NotProperNameException(msg);
         throw exName;
      }
      this.name = name;
      this.age = age;
   }
   public void display(){
      System.out.println("Name of the Student: "+this.name );
      System.out.println("Age of the Student: "+this.age );
   }
   public static void main(String args[]) {
      Scanner sc= new Scanner(System.in);
      System.out.println("Enter the name of the person: ");
      String name = sc.next();
      System.out.println("Enter the age of the person: ");
      int age = sc.nextInt();
      CustomCheckedException obj = new CustomCheckedException(name, age);
      obj.display();
   }
}

संकलन-समय अपवाद

संकलन करने पर, उपरोक्त प्रोग्राम निम्नलिखित अपवाद उत्पन्न करता है।

CustomCheckedException.java:24: error: unreported exception NotProperNameException; must be caught or declared to be thrown
   throw exName;
   ^
1 error

उदाहरण:कस्टम अनियंत्रित अपवाद

यदि आप केवल उस वर्ग को बदलते हैं जो आपके कस्टम अपवाद को RuntimeException . में विरासत में मिला है इसे रन टाइम पर फेंक दिया जाएगा

class NotProperNameException extends RuntimeException {
   NotProperNameException(String msg){
      super(msg);
   }
}

यदि आप उपरोक्त कोड के साथ NotProperNameException वर्ग को प्रतिस्थापित करके पिछले प्रोग्राम को चलाते हैं और इसे चलाते हैं, तो यह निम्न रनटाइम अपवाद उत्पन्न करता है।

रनटाइम अपवाद

Enter the name of the person:
Krishna1234
Enter the age of the person:
20
Exception in thread "main" july_set3.NotProperNameException: Improper name (Should contain only characters between a to z (all small))
   at july_set3.CustomCheckedException.<init>(CustomCheckedException.java:25)
   at july_set3.CustomCheckedException.main(CustomCheckedException.java:41)
पर
  1. रूबी में कस्टम अपवाद

    रूबी में अपने स्वयं के अपवाद बनाना आसान है। बस इन चरणों का पालन करें: 1. एक नई कक्षा बनाएं अपवाद वर्ग हैं, जैसे रूबी में बाकी सब कुछ! एक नए प्रकार का अपवाद बनाने के लिए, बस एक ऐसा वर्ग बनाएं जो StandardError या उसके किसी बच्चे से विरासत में मिला हो। class MyError < StandardError end raise MyErr

  1. रूबी में अपवाद

    एक अपवाद एक विशेष डेटा संरचना है जिसमें असाधारण . के बारे में जानकारी होती है आपके आवेदन में हो रही स्थिति। अपवाद तब भेजे जाते हैं जब आपका प्रोग्राम चलना जारी नहीं रख सकता क्योंकि यह नहीं जानता कि किसी विशिष्ट स्थिति से कैसे निपटा जाए। रूबी में, हम ऐसे सिग्नल भेजने को कहते हैं उठाना एक अपवाद। raise

  1. जावा अपवाद और उन्हें कैसे संभालें

    जावा डेवलपर के रूप में, आपको जावा अपवादों और अपवाद प्रबंधन का अच्छा ज्ञान होना चाहिए। यह ट्यूटोरियल मूल ज्ञान प्रदान करता है जो जावा प्रोग्राम के साथ काम करते समय प्रत्येक प्रोग्रामर के पास होना चाहिए। शुरू करने के लिए, आइए समझते हैं कि वास्तव में जावा अपवाद क्या हैं। Java Exceptions क्या हैं एक ज