Dart প্রোগ্রামিং ভাষায় try, catch, এবং finally ব্লকগুলি এক্সসেপশন হ্যান্ডলিংয়ের জন্য ব্যবহৃত হয়। এগুলি প্রোগ্রামের মধ্যে ত্রুটি ঘটলে সেগুলি সঠিকভাবে পরিচালনা করার জন্য একটি কাঠামো সরবরাহ করে। নিচে প্রতিটি ব্লকের ব্যবহার এবং উদাহরণ সহ আলোচনা করা হলো।
1. try Block
try ব্লকটি সেই কোড ধারণ করে যা সম্ভবত একটি এক্সসেপশন (ত্রুটি) সৃষ্টি করতে পারে। যদি try ব্লকের মধ্যে কোনো ত্রুটি ঘটে, তবে কন্ট্রোলটি catch ব্লকে চলে যায়।
উদাহরণ:
void main() {
try {
int result = 10 ~/ 0; // Integer division by zero
print("Result: $result");
} catch (e) {
print("Error: $e"); // Output: Error: IntegerDivisionByZeroException
}
}
2. catch Block
catch ব্লকটি ত্রুটির ধরন নির্ধারণ করে এবং সেই ত্রুটির জন্য কোড সম্পাদন করে। এটি try ব্লকের মধ্যে ঘটে এমন ত্রুটির জন্য প্রতিক্রিয়া প্রদান করে।
উদাহরণ:
void main() {
try {
int result = 10 ~/ 0; // Integer division by zero
} catch (e) {
print("Error: $e"); // Output: Error: IntegerDivisionByZeroException
}
}
বিশেষায়িত catch:
আপনি নির্দিষ্ট ধরনের এক্সসেপশন ধরতে on কিওয়ার্ড ব্যবহার করতে পারেন।
void main() {
try {
int result = 10 ~/ 0; // Integer division by zero
} on IntegerDivisionByZeroException {
print("Cannot divide by zero."); // Output: Cannot divide by zero.
} catch (e) {
print("Some other error: $e");
}
}
3. finally Block
finally ব্লকটি সবসময় কার্যকর হয়, যে কোন শর্তেই। এটি ত্রুটি ঘটুক বা না ঘটুক, কোড ব্লকটি কার্যকর হয়। সাধারণত ক্লিনআপ কার্যক্রম (যেমন মেমরি মুক্ত করা বা ফাইল বন্ধ করা) এখানে রাখা হয়।
উদাহরণ:
void main() {
try {
int result = 10 ~/ 0; // Integer division by zero
} catch (e) {
print("Error: $e");
} finally {
print("This will always execute."); // Output: This will always execute.
}
}
সমন্বিত উদাহরণ
একটি সম্পূর্ণ উদাহরণ দেখলে একটি সঠিক ধারণা পাওয়া যায়:
void main() {
int numerator = 10;
int denominator = 0;
try {
int result = numerator ~/ denominator; // Integer division by zero
print("Result: $result");
} catch (e) {
print("Error: $e"); // Output: Error: IntegerDivisionByZeroException
} finally {
print("This code runs regardless of error."); // Output: This code runs regardless of error.
}
}
Read more