কম্পিউটার

জাভাতে কাস্টম ব্যতিক্রম


আপনি জাভাতে আপনার নিজস্ব ব্যতিক্রমগুলি তৈরি করতে পারেন এবং সেগুলি ব্যবহারকারী-সংজ্ঞায়িত ব্যতিক্রম বা কাস্টম ব্যতিক্রম হিসাবে পরিচিত৷

একটি ব্যবহারকারী-সংজ্ঞায়িত ব্যতিক্রম তৈরি করতে উপরে উল্লিখিত ক্লাসগুলির একটি প্রসারিত করুন। বার্তাটি প্রদর্শন করতে 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. রুবিতে কাস্টম ব্যতিক্রম

  2. রুবি মধ্যে ব্যতিক্রম উদ্ধার

  3. রুবিতে ব্যতিক্রম

  4. জাভা ব্যতিক্রম এবং সেগুলি কীভাবে পরিচালনা করবেন