ใน c# การ throw เป็นคีย์เวิร์ดและเป็นประโยชน์ในการโยนข้อยกเว้นด้วยตนเองระหว่างการทำงานของโปรแกรม และเราสามารถจัดการกับข้อยกเว้นที่เกิดขึ้นโดยใช้บล็อก try−catch ตามความต้องการของเรา
ด้วยการใช้คีย์เวิร์ด throw ในบล็อก catch เราสามารถโยนข้อยกเว้นที่ได้รับการจัดการในบล็อก catch อีกครั้งได้ การโยนข้อยกเว้นใหม่มีประโยชน์เมื่อเราต้องการส่งข้อยกเว้นไปยังผู้โทรเพื่อจัดการในลักษณะที่พวกเขาต้องการ
ต่อไปนี้คือตัวอย่างของการโยนข้อยกเว้นให้กับผู้โทรอีกครั้งโดยใช้คีย์เวิร์ด throw โดยมีบล็อก try-catch ใน c#
ตัวอย่าง
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; } } static void Method1(){ try{ throw new NullReferenceException("Null Exception error"); } catch (System.Exception){ throw; } } }
นี่คือวิธีที่เราสามารถส่งข้อยกเว้นให้กับผู้โทรอีกครั้งโดยใช้คีย์เวิร์ด throw ในบล็อก catch ตามความต้องการของเรา
ผลลัพธ์
at DemoApplication.Program.Method1() in C:\Users\Koushik\Desktop\Questions\ConsoleApp\Program.cs:line 49 at DemoApplication.Program.Method2() in C:\Users\Koushik\Desktop\Questions\ConsoleApp\Program.cs:line 37 at DemoApplication.Program.Main(String[] args) in C:\Users\Koushik\Desktop\Questions\ConsoleApp\Program.cs:line 24 Null Exception error