C#-এ throw কিওয়ার্ড ব্যবহার করে প্রোগ্রাম এক্সিকিউশন চলাকালীন ম্যানুয়ালি এক্সেপশন থ্রো করা যায় এবং try-catch ব্লক দিয়ে হ্যান্ডেল করা যায়।
catch ব্লকে throw কিওয়ার্ড ব্যবহার করে হ্যান্ডেল করা এক্সেপশন রিথ্রো করা যায়। এটি কলারের কাছে পাস করার জন্য উপযোগী যাতে সে নিজের মতো করে হ্যান্ডেল করতে পারে।
উদাহরণ: সঠিক রিথ্রো (স্ট্যাক ট্রেস সংরক্ষণ)
class Program
{
static void Main(string[] args)
{
try
{
Method2();
}
catch (System.Exception ex)
{
System.Console.WriteLine($"{ex.StackTrace.ToString()} {ex.Message}");
}
Console.ReadLine();
}
static void Method2()
{
try { Method1(); }
catch (System.Exception) { throw; } // শুধু 'throw' - স্ট্যাক ট্রেস প্রিজার্ভ করে
}
static void Method1()
{
try { throw new NullReferenceException("Null Exception error"); }
catch (System.Exception) { throw; }
}
}
আউটপুট
at DemoApplication.Program.Method1() in C:\...\Program.cs:line 49
at DemoApplication.Program.Method2() in C:\...\Program.cs:line 37
at DemoApplication.Program.Main(String[] args) in C:\...\Program.cs:line 24
Null Exception error
গুরুত্বপূর্ণ: throw ex; লিখলে স্ট্যাক ট্রেস রিসেট হয়ে যায় (লোকেশন মেথড2 দেখাবে)। throw; লিখলে অরিজিনাল স্ট্যাক ট্রেস সংরক্ষিত থাকে। সবসময় throw; ব্যবহার করুন রিথ্রো করার সময়।