এক্সেপশন প্রোপাগেশন (Exception Propagation) বুঝতে হলে C#-তে এক্সেপশন হ্যান্ডলিং কীভাবে কাজ করে সেটি বুঝতে হবে।
try ব্লকে যখন এক্সেপশন ঘটে, তখন সংশ্লিষ্ট catch ব্লকগুলো চেক করা হয় যে সেগুলো এক্সেপশনটি ক্যাচ (catch) করতে পারে কিনা। যদি কোনো ম্যাচিং এক্সেপশন না পাওয়া যায়, তবে এক্সেপশনটি একটি হাইয়ার-লেভেল try ব্লকে প্রোপাগেট (propagate) হয়। এটি পুনরাবৃত্তি হয় যতক্ষণ না এক্সেপশনটি ক্যাচ হয়। যদি এক্সেপশনটি ক্যাচ না হয়, তবে প্রোগ্রামের এক্সিকিউশন শেষ হয়ে যায়।
উপরের কনসেপ্টটি নিচের নেস্টেড try স্টেটমেন্টের উদাহরণে ব্যাখ্যা করা হয়েছে।
উদাহরণ
using System;
using System.Text;
public class Demo {
public static void Main() {
try {
try {
throw new ArgumentException();
} catch (NullReferenceException e) {
Console.WriteLine("catch one");
} finally {
Console.WriteLine("finally one");
}
} catch (Exception e) {
Console.WriteLine("catch two");
} finally {
Console.WriteLine("finally two");
}
Console.ReadLine();
}
}
আউটপুট
finally one catch two finally two