Checked এবং Unchecked Exceptions
Exceptions হল এমন ঘটনা যা প্রোগ্রামের কার্যকলাপকে ব্যাহত করে। Exception handling-এর মাধ্যমে আপনি এই সমস্যা মোকাবেলা করতে পারেন। Exceptions সাধারণত দুই ধরনের হয়ে থাকে: Checked Exceptions এবং Unchecked Exceptions। নিচে এদের মধ্যে পার্থক্য এবং ব্যবহার নিয়ে বিস্তারিত আলোচনা করা হলো।
১. Checked Exceptions
Checked Exceptions হলো এমন এক ধরনের exception যা কম্পাইল টাইমে চেক করা হয়। অর্থাৎ, যদি আপনার কোডে কোনো checked exception ঘটতে পারে, তাহলে আপনাকে এটি পরিচালনা করতে হবে। যদি না করেন, তবে কম্পাইলার একটি এরর দেখাবে এবং কোডটি কম্পাইল হবে না।
উদাহরণ:
import java.io.File
import java.io.FileNotFoundException
fun readFile(fileName: String) {
try {
val file = File(fileName)
val content = file.readText() // FileNotFoundException হতে পারে
println(content)
} catch (e: FileNotFoundException) {
println("File not found: ${e.message}")
}
}
fun main() {
readFile("non_existent_file.txt")
}
ব্যাখ্যা:
- এখানে
FileNotFoundExceptionএকটি checked exception। যখন একটি ফাইল খুঁজে পাওয়া যায় না, তখন এটি উঠবে। কম্পাইলার আপনাকেtry-catchব্লক ব্যবহার করতে বাধ্য করে, অন্যথায় কোডটি কম্পাইল হবে না।
Checked Exceptions-এর উদাহরণ:
IOExceptionSQLExceptionClassNotFoundException
২. Unchecked Exceptions
Unchecked Exceptions হলো এমন এক ধরনের exception যা রানটাইমে ঘটে এবং কম্পাইল টাইমে চেক করা হয় না। অর্থাৎ, যদি আপনার কোডে কোনো unchecked exception ঘটে, তাহলে এটি রানটাইমে ঘটে এবং সাধারণত এই ধরনের exceptions একটি প্রোগ্রামকে ক্র্যাশ করে। Unchecked exceptions হল মূলত RuntimeException এর সাবক্লাস।
উদাহরণ:
fun divide(a: Int, b: Int): Int {
return a / b // ArithmeticException ঘটতে পারে যদি b = 0 হয়
}
fun main() {
try {
val result = divide(10, 0)
println("Result: $result")
} catch (e: ArithmeticException) {
println("Error: ${e.message}") // আউটপুট: Error: / by zero
}
}
ব্যাখ্যা:
- এখানে
ArithmeticExceptionএকটি unchecked exception। যখনbশূন্য হবে, তখন এটি ঘটবে। কম্পাইলার এটি চেক করে না, কিন্তু আপনি এটিকেtry-catchব্লক দিয়ে পরিচালনা করতে পারেন।
Unchecked Exceptions-এর উদাহরণ:
NullPointerExceptionIndexOutOfBoundsExceptionArithmeticException
৩. Checked এবং Unchecked Exceptions-এর পার্থক্য
| বৈশিষ্ট্য | Checked Exceptions | Unchecked Exceptions |
|---|---|---|
| চেকিং | কম্পাইলার দ্বারা চেক করা হয় | রানটাইমে ঘটে, কম্পাইলার দ্বারা চেক করা হয় না |
| প্রয়োজনীয়তা | Must be handled (try-catch) | Optional (can be handled, but not required) |
| উদাহরণ | IOException, SQLException | NullPointerException, ArithmeticException |
| ইনহেরিটেন্স | Exception ক্লাসের সাবক্লাস | RuntimeException ক্লাসের সাবক্লাস |
৪. Exception Handling এর জন্য টিপস
- Checked Exceptions ব্যবহার করুন যখন আপনি জানেন যে একটি নির্দিষ্ট পরিস্থিতিতে exception ঘটতে পারে এবং আপনি এটি পরিচালনা করতে চান।
- Unchecked Exceptions সাধারণত প্রোগ্রামের লজিক্যাল ত্রুটির জন্য ঘটে, সুতরাং এগুলির জন্য উপযুক্ত exception handling ব্যবহার করা গুরুত্বপূর্ণ।
- Exception handling এর মাধ্যমে আপনি ব্যবহারকারীদের জন্য অর্থপূর্ণ বার্তা প্রদান করতে পারেন এবং প্রোগ্রামের স্থিতিশীলতা বজায় রাখতে পারেন।
উপসংহার
Checked এবং Unchecked Exceptions কটলিনে error handling-এর গুরুত্বপূর্ণ অংশ। আপনার কোডের স্থিতিশীলতা এবং ব্যবহারকারীর অভিজ্ঞতা উন্নত করতে এই exceptions সঠিকভাবে পরিচালনা করা আবশ্যক। checked exceptions কম্পাইলার দ্বারা চেক করা হয়, যেখানে unchecked exceptions রানটাইমে ঘটে এবং এদের জন্য exception handling কম্পাইলারের দ্বারা বাধ্যতামূলক নয়।