কম্পিউটার

সি# এ একটি অ্যাসিঙ্ক অকার্যকর পদ্ধতি দ্বারা নিক্ষিপ্ত একটি ব্যতিক্রম কীভাবে ধরবেন?


সিঙ্ক্রোনাস C# কোডে, ব্যতিক্রমগুলি কল স্ট্যাকের উপরে প্রচারিত হয় যতক্ষণ না তারা একটি উপযুক্ত ক্যাচ ব্লকে পৌঁছায় যা ব্যতিক্রম পরিচালনা করতে পারে। যাইহোক, অ্যাসিঙ্ক্রোনাস পদ্ধতিতে ব্যতিক্রম পরিচালনা ততটা সহজ নয়।

C# এ একটি অ্যাসিঙ্ক্রোনাস পদ্ধতিতে তিন ধরনের রিটার্ন মান থাকতে পারে:void, Task এবং Task। যখন একটি অ্যাসিঙ্ক পদ্ধতিতে একটি ব্যতিক্রম ঘটে যার একটি রিটার্ন টাইপ টাস্ক বা টাস্ক থাকে, তখন ব্যতিক্রম অবজেক্টটি AggregateException এর একটি উদাহরণে মোড়ানো হয় এবং টাস্ক অবজেক্টের সাথে সংযুক্ত করা হয়।

যদি একাধিক ব্যতিক্রম নিক্ষেপ করা হয়, তবে তাদের সবগুলি টাস্ক অবজেক্টে সংরক্ষণ করা হয়।

উদাহরণ 1

static async Task Main(string[] args) {
   await DoSomething();
   Console.ReadLine();
}
public static async Task Foo() {
   throw new ArgumentNullException();
}
public static async Task DoSomething(){
   try{
      await Foo();
   }
   catch (ArgumentNullException ex){
      Console.WriteLine(ex);
   }
}

আউটপুট

System.ArgumentNullException: Value cannot be null.
at DemoApplication.Program.Foo() in C:\Users\Koushik\Desktop\Questions\ConsoleApp\Program.cs:line 37
at DemoApplication.Program.DoSomething() in C:\Users\Koushik\Desktop\Questions\ConsoleApp\Program.cs:line 44

  1. কিভাবে Python এ OverflowError ব্যতিক্রম ধরবেন?

  2. কিভাবে Python এ ArithmeticError ব্যতিক্রম ধরবেন?

  3. পাইথনে IOError ব্যতিক্রম কিভাবে ধরবেন?

  4. কিভাবে পাইথনে KeyError ব্যতিক্রম ধরবেন?