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

জাভাতে IllegalStateException (অনচেকড) কখন থ্রো হবে?


IllegalStateException জাভাতে একটি অনচেকড এক্সেপশন। এই এক্সেপশন আমাদের জাভা প্রোগ্রামে তখন আউট করতে পারে যখন আমরা java.util.package-এর কালেকশন ফ্রেমওয়ার্কের সাথে কাজ করি। List, Queue, Tree, Map gibi অনেক কালেকশন আছে যেগুলোর মধ্যে List এবং Queues (Queue and Deque) নির্দিষ্ট শর্তে এই IllegalStateException থ্রো করে।

IllegalStateException কখন থ্রো হবে

  • যখন আমরা অনुचিত সময়ে একটি নির্দিষ্ট মেথড আহ্বান করার চেষ্টা করি, তখন IllegalStateException থ্রো হবে।
  • java.util.List কালেকশনের ক্ষেত্রে, আমরা ListIterator ইন্টারফেসের next() মেথড ব্যবহার করে java.util.List-এ ট্রাভার্স করি। যদি আমরা next() মেথড কল করার আগে ListIterator ইন্টারফেসের remove() মেথড কল করি, তবে এই এক্সেপশন থ্রো হবে কারণ এটি List কালেকশনকে একটি অস্থির অবস্থা-এ রেখে দেয়।
  • যদি আমরা একটি নির্দিষ্ট অবজেক্ট মডিফাই করতে চাই, তবে আমরা ListIterator ইন্টারফেসের set() মেথড ব্যবহার করি।
  • Queues-এর ক্ষেত্রে, যদি আমরা একটি Queue-এ এলিমেন্ট যোগ করার চেষ্টা করি, তবে নিশ্চিত করতে হবে যে কিউটি ফুল নয়। যদি কিউটি ফুল থাকে, তবে সেই এলিমেন্ট যোগ করা যাবে না, ফলে IllegalStateException থ্রো হবে।

উদাহরণ

import java.util.*; 
public class IllegalStateExceptionTest { 
    public static void main(String args[]) { 
        List list = new LinkedList(); 
        list.add("Welcome"); 
        list.add("to"); 
        list.add("Tutorials"); 
        list.add("Point"); 
        ListIterator lIterator = list.listIterator(); 
        lIterator.next(); 
        lIterator.remove(); // লিস্ট মডিফাই করা 
        lIterator.set("Tutorix"); 
        System.out.println(list); 
    } 
}

আউটপুট

Exception in thread "main" java.lang.IllegalStateException  
    at java.util.LinkedList$ListItr.set(LinkedList.java:937) 
    at IllegalStateExceptionTest.main(IllegalStateExceptionTest.java:15)
  1. জাভাতে সুপারক্লাসের final মেথড ওভাররাইড করার চেষ্টা করলে কী হবে?

  2. ClassCastException কী এবং জাভাতে এটি কখন থ্রো হবে?

  3. জাভাতে ArrayList ইটারেশন: ৫টি কার্যকর লুপিং কৌশল

  4. জাভা গাইড: লিস্ট কে অ্যারেতে কনভার্ট করা (এবং আবার ফিরিয়ে আনা) toArray() এবং Arrays.asList() দিয়ে