Runtime Exception জাভা প্রোগ্রামিং ল্যাঙ্গুয়েজের সকল এক্সেপশনের পেরেন্ট ক্লাস যেগুলো প্রোগ্রাম বা অ্যাপ্লিকেশন ক্র্যাশ বা ব্রেক ডাউন করার জন্য এক্সপেক্টেড যখন সেগুলো ঘটে। চেকড এক্সেপশন যেমন এক্সেপশন থেকে ভিন্ন, Runtime Exceptions কখনো চেকড হয় না।
Runtime Exception সাধারণত প্রোগ্রামারের এরর ইন্ডিকেট করে, বরং যে কন্ডিশন একটি প্রোগ্রাম ডিল করার জন্য এক্সপেক্টেড। Runtime Exceptions তখনও ব্যবহার করা হয় যখন এমন একটি কন্ডিশন যা ঘটতে পারে না। এটি নোট করা উচিত যে যখন একটি প্রোগ্রাম মেমরি আউট হয়, একটি প্রোগ্রাম এরর থ্রো করা হয় Runtime Exception দেখানোর বদলে।
সর্বাধিক কমন Runtime Exceptions হচ্ছে NullPointerException, ArrayIndexOutOfBoundsException এবং InvalidArgumentException। জাভা ভার্চুয়াল মেশিন প্রথম দুটি Runtime Exception থ্রো করে।
- NullPointerException হলো JVM দ্বারা থ্রো করা এক্সেপশন যখন ইউজার একটি নাল অবজেক্ট মনে করে কিছু অপারেশন পারফর্ম করে বা নাল অবজেক্টে কিছু মেথড কল করে। একজন ইউজার এই ধরনের এক্সেপশন হ্যান্ডেল করার চেষ্টা করা উচিত নয় কারণ এটি শুধু সমস্যাটি প্যাচ করবে পুরোপুরি ফিক্স করবে না।
- ArrayIndexOutOfBoundsException হলো সেই এক্সেপশন যা জাভা রানটাইম এনভায়রনমেন্ট দ্বারা অটোমেটিক্যালি থ্রো করা হয় যখন একটি জাভা প্রোগ্রাম ভুলভাবে একটি অস্তিত্বহীন লোকেশন অ্যাক্সেস করার চেষ্টা করে একটি সেটে। এটি সাধারণত হয় যখন অ্যারে ইন্ডেক্স নেগেটিভ হয়, বা অ্যারে সাইজের চেয়ে বড় বা সমান হয়। জাভার অ্যারে জিরো-বেসড ইন্ডেক্সিং ব্যবহার করে; সুতরাং অ্যারের প্রথম এলিমেন্টের ইন্ডেক্স শূন্য, শেষ এলিমেন্টের ইন্ডেক্স size-1, এবং nth এলিমেন্টের ইন্ডেক্স n-1।
- InvalidArgumentException হলো একটি এক্সেপশন যা তখন রেইজ হয় যখন একটি ইনভ্যালিড প্যারামিটার পাস করা হয় সার্ভারের রেফারেন্সড কানেকশনে একটি নির্দিষ্ট মেথডে।
উদাহরণ
public class MyExceptionTest {
public void testRuntimeException () {
throw new MyException();
}
public static void main(String[] args) {
try {
new MyExceptionTest().testRuntimeException();
} catch(Exception e) {
System.out.println(e.getClass().getName());
}
}
}
class MyException extends RuntimeException {
public MyException() {
super();
}
}
আউটপুট
MyException