Throwable ক্লাস জাভাতে সকল এরর এবং এক্সেপশনের সুপারক্লাস। এই ক্লাসের ইনস্ট্যান্স olan অবজেক্টগুলো জাভা ভার্চুয়াল মেশিন দ্বারা থ্রো করা হয় বা throw স্টেটমেন্ট দ্বারা থ্রো করা হয়। একইভাবে, এই ক্লাস বা এর সাবক্লাসগুলো catch clause-এ আর্গুমেন্ট টাইপ হিসেবে ব্যবহার করা হয়।
Error এবং Exception এই দুটি সাবক্লাসের ইনস্ট্যান্সগুলো ব্যবহার করা হয় এই बात ইন্ডিকেট করার জন্য যে এক্সেপশনাল সিচুয়েশনগুলো ঘটেছে, এই ইনস্ট্যান্সগুলো এক্সেপশনাল সিচুয়েশনের কনটেক্সটে তৈরি হয় যাতে প্রাসঙ্গিক ইনফরমেশন থাকে।
Throwable ক্লাসের সাধারণ ব্যবহৃত এক্সেপশন মেথডগুলো
- public String getMessage(): এক্সেপশন সম্পর্কে মেসেজ স্ট্রিং রিটার্ন করে।
- public Throwable getCause(): এক্সেপশনের কারণ রিটার্ন করে। কারণ অজানা বা অস্তিত্বহীন হলে null রিটার্ন করে।
- public String toString(): এক্সেপশনের একটি সংক্ষিপ্ত বিবরণ রিটার্ন করে।
- public void printStackTrace(PrintStream s): এক্সেপশনের সংক্ষিপ্ত বিবরণ (toString() ব্যবহার করে) + এই এক্সেপশনের জন্য একটি স্ট্যাক ট্রেস এরর আউটপুট স্ট্রিমে (System.err) প্রিন্ট করে।
উদাহরণ
class ArithmaticTest {
public void division(int num1, int num2) {
try {
// java.lang.ArithmeticException here.
System.out.println(num1/num2);
// catch ArithmeticException here.
} catch(ArithmeticException e) {
// এক্সেপশন সম্পর্কে মেসেজ স্ট্রিং প্রিন্ট করুন।
System.out.println("getMessage(): " + e.getMessage());
// এক্সেপশনের কারণ প্রিন্ট করুন।
System.out.println("getCause(): " + e.getCause());
// ক্লাস নেম + ": " + মেসেজ প্রিন্ট করুন।
System.out.println("toString(): " + e.toString());
System.out.println("printStackTrace(): ");
// এক্সেপশনের সংক্ষিপ্ত বিবরণ + এই এক্সেপশনের জন্য একটি স্ট্যাক ট্রেস প্রিন্ট করুন।
e.printStackTrace();
}
}
}
public class Test {
public static void main(String args[]) {
// ArithmaticTest অবজেক্ট তৈরি
ArithmaticTest test = new ArithmaticTest();
// মেথড কল
test.division(20, 0);
}
}
আউটপুট
getMessage(): / by zero
getCause(): null
toString(): java.lang.ArithmeticException: / by zero
printStackTrace():
java.lang.ArithmeticException: / by zero
at ArithmaticTest.division(Test.java:5)
at Test.main(Test.java:27)