Java এবং EJB (Enterprise JavaBeans) এর মধ্যে, Application Exception এবং System Exception দুটি পৃথক ধরনের এক্সেপশন। এই দুই ধরনের এক্সেপশনটি বিভিন্ন ধরনের ত্রুটি পরিস্থিতি চিহ্নিত করতে ব্যবহৃত হয় এবং তাদের আচরণও আলাদা।
নিচে Application Exception এবং System Exception এর মধ্যে পার্থক্য সম্পর্কে বিস্তারিত আলোচনা করা হলো:
1. Application Exception
Application Exception হল একটি Checked Exception, যা অ্যাপ্লিকেশন স্তরের ত্রুটি বোঝায়। এটি ব্যবহারকারীর দ্বারা ডিফাইন করা হতে পারে এবং সাধারণত অ্যাপ্লিকেশন-নির্দিষ্ট পরিস্থিতির কারণে ঘটে। এগুলি সেই সমস্ত ত্রুটি যা একটি নির্দিষ্ট অ্যাপ্লিকেশন বা বাণিজ্যিক লজিকের মধ্যে ঘটতে পারে।
Application Exception এর বৈশিষ্ট্য:
- Checked Exception: Application Exception সাধারণত checked exception হিসাবে চিহ্নিত করা হয়। এর মানে হল যে, এটি ডেভেলপারকে ব্যাবহার করতে হবে, এবং এটি কম্পাইল টাইমে হ্যান্ডেল করা বাধ্যতামূলক।
- ব্যবহারকারী-নির্দিষ্ট ত্রুটি: অ্যাপ্লিকেশন সম্পর্কিত সমস্যা যেমন ব্যাবহারকারী ভুল ইনপুট, বৈধতা যাচাইয়ের ত্রুটি, অথবা প্রক্রিয়া-নির্ভর ত্রুটির জন্য এই এক্সেপশনটি ব্যবহৃত হয়।
- Explicitly thrown: এই ধরনের এক্সেপশনগুলো সাধারণত অ্যাপ্লিকেশন কোড দ্বারা explicitভাবে (অর্থাৎ
throwকরা হয়) ফেলে দেওয়া হয়।
Application Exception উদাহরণ:
ধরা যাক, একটি InvalidInputException যা একটি অ্যাপ্লিকেশন-নির্দিষ্ট ত্রুটি, যদি ব্যবহারকারী ভুল ইনপুট প্রদান করে:
public class InvalidInputException extends Exception {
public InvalidInputException(String message) {
super(message);
}
}
এখানে, InvalidInputException একটি অ্যাপ্লিকেশন এক্সেপশন, যা অ্যাপ্লিকেশন লজিকের অংশ হিসেবে ব্যাবহার করা হয় এবং এটি কার্যকরভাবে হ্যান্ডল করতে হবে।
2. System Exception
System Exception হল একটি Unchecked Exception, যা সিস্টেম বা জাভা রানটাইম সম্পর্কিত ত্রুটিগুলিকে নির্দেশ করে। এগুলি সাধারণত জাভা রানটাইম বা সিস্টেম সম্পর্কিত ত্রুটির কারণে ঘটে, যেমন মেমরি সমস্যাগুলি, I/O ত্রুটি, বা অন্যান্য সিস্টেম স্তরের সমস্যা। সিস্টেম এক্সেপশনগুলো অ্যাপ্লিকেশন থেকে সম্পর্কিত নয় এবং সাধারণত ডেভেলপারকে এটি হ্যান্ডল করতে বাধ্য করা হয় না।
System Exception এর বৈশিষ্ট্য:
- Unchecked Exception: System Exception সাধারণত unchecked exception হিসেবে চিহ্নিত হয়। এর মানে হল যে, এটি runtime exception হিসেবে ডিফাইন করা হয় এবং ডেভেলপারকে এক্সেপশন হ্যান্ডলিং করতে বাধ্য করা হয় না।
- সিস্টেম সম্পর্কিত ত্রুটি: System Exception সাধারণত সিস্টেম স্তরের ত্রুটির জন্য ব্যবহৃত হয়, যেমন NullPointerException, ArrayIndexOutOfBoundsException, IOException ইত্যাদি।
- Implicitly thrown: এগুলি সাধারণত Java Runtime Environment (JRE) বা JVM দ্বারা স্বয়ংক্রিয়ভাবে তৈরি হয় এবং ফেলা হয়।
System Exception উদাহরণ:
public class MyApplication {
public static void main(String[] args) {
String str = null;
System.out.println(str.length()); // NullPointerException occurs here
}
}
এখানে, NullPointerException একটি System Exception, যা সিস্টেম সম্পর্কিত ত্রুটি যা সাধারণত জাভা রানটাইম দ্বারা ফেলা হয় এবং অ্যাপ্লিকেশন লজিকের সমস্যা নির্দেশ করে না।
Application Exception এবং System Exception এর মধ্যে পার্থক্য
| বৈশিষ্ট্য | Application Exception | System Exception |
|---|---|---|
| Type | Checked Exception | Unchecked Exception |
| Throwing | Explicitly thrown by application code | Implicitly thrown by JVM or runtime system |
| Cause | Business logic or application-specific issues | System or environment-related issues |
| Example | InvalidInputException, InsufficientFundsException | NullPointerException, ArrayIndexOutOfBoundsException, IOException |
| Handling Requirement | Must be handled or declared in method signature | Not required to be handled explicitly |
| Use Case | Business or application-specific validation or errors | Runtime system failures or JVM-level issues |
| Is it recoverable? | Yes, the application can recover from these exceptions | Typically not recoverable by the application |
সারাংশ:
- Application Exception: এটি অ্যাপ্লিকেশন স্তরের ত্রুটি এবং Checked Exception হিসেবে ব্যবহৃত হয়, যার মানে হলো ডেভেলপারকে এটি হ্যান্ডল করতে হবে।
- System Exception: এটি Unchecked Exception, যা সিস্টেম বা রানটাইম সম্পর্কিত ত্রুটির কারণে ঘটে এবং সাধারণত JRE বা JVM দ্বারা ফেলা হয়। ডেভেলপারকে এগুলি হ্যান্ডল করার জন্য বাধ্য করা হয় না।
- Application Exception সাধারণত অ্যাপ্লিকেশন লজিক বা ব্যবসায়িক লজিকের সাথে সম্পর্কিত হয়, যেখানে System Exception সিস্টেম বা রানটাইম পরিবেশের ত্রুটি নির্দেশ করে।
এভাবে, Application Exception এবং System Exception এর মধ্যে পার্থক্য বুঝে, আপনি আপনার অ্যাপ্লিকেশন ডিজাইন করতে পারেন এবং সঠিকভাবে এক্সেপশন হ্যান্ডলিংয়ের মাধ্যমে আপনার কোডের স্থিতিশীলতা এবং নিরাপত্তা নিশ্চিত করতে পারেন।
Read more