কম্পিউটার টিউটোরিয়াল

জাভাতে Exception এবং Error-এর পার্থক্য

Exception এবং Error উভয় Throwable ক্লাসের সাবক্লাস। Error সিস্টেম রিসোর্সের অভাবের কারণে হয় এমন সমস্যা নির্দেশ করে যা অ্যাপ্লিকেশন ক্যাচ করা উচিত নয়। উদাহরণ: সিস্টেম ক্র্যাশ, OutOfMemoryError। Error অধিকাংশসময় রানটাইমে হয় তাই unchecked টাইপের।

Exception হল ডেভেলপার লেখা কোডে হতে পারে এমন সমস্যা, যা রানটাইম এবং কম্পাইল টাইম দুজনেই হতে পারে। Exception দুটি ক্যাটাগরিতে ভাগ: checked এবং unchecked exception।

Exception এবং Error-এর তুলনা

ক্রমিক নং বিষয় Error Exception
১ টাইপ Unchecked টাইপ হিসেবে শ্রেণিবদ্ধ Checked এবং unchecked দুটোই হয়
২ প্যাকেজ java.lang.Error java.lang.Exception
৩ রিকভারেবিলিটি Irrecoverable (পুনরুদ্ধার অসম্ভব) Recoverable (পুনরুদ্ধার সম্ভব)
৪ ঘটনার সময় কম্পাইল টাইমে ঘটে না রানটাইম এবং কম্পাইল টাইম দুজনেই হতে পারে
৫ উদাহরণ OutOfMemoryError, IOError NullPointerException, SQLException

Error উদাহরণ

public class ErrorExample {
    public static void main(String[] args) {
        recursiveMethod(10);
    }
    
    public static void recursiveMethod(int i) {
        while(i != 0) {
            i = i + 1;
            recursiveMethod(i); // StackOverflowError হবে
        }
    }
}

আউটপুট

Exception in thread "main" java.lang.StackOverflowError
    at ErrorExample.recursiveMethod(Main.java:42)

Exception উদাহরণ

public class ExceptionExample {
    public static void main(String[] args) {
        int x = 100;
        int y = 0;
        int z = x / y; // ArithmeticException হবে
    }
}

আউটপুট

java.lang.ArithmeticException: / by zero
    at ExceptionExample.main(ExceptionExample.java:7)

মূল নোট

  • Error: সিস্টেম-লেভেল সমস্যা, অ্যাপ্লিকেশন হ্যান্ডেল করা উচিত নয়
  • Exception: অ্যাপ্লিকেশন-লেভেল সমস্যা, হ্যান্ডেল করা উচিত
  • Checked exception: কম্পাইলার বাধ্য করে হ্যান্ডেল করার জন্য (IOException, SQLException)
  • Unchecked exception: রানটাইম এক্সেপশন (NullPointerException, ArrayIndexOutOfBoundsException)
  1. জাভাতে Serialization এবং Externalization-এর পার্থক্য

  2. জাভাতে Iterator এবং Enumeration-এর পার্থক্য

  3. জাভাতে ArrayList এবং HashSet-এর পার্থক্য

  4. জাভাতে Exception ক্লাস এবং Error ক্লাসের পার্থক্য