Эх сурвалжийг харах

бамбуковый бамбук

V.Yakimova 8 сар өмнө
parent
commit
1f442532b6
1 өөрчлөгдсөн 74 нэмэгдсэн , 0 устгасан
  1. 74 0
      readme.md

+ 74 - 0
readme.md

@@ -446,6 +446,80 @@ static async void FactorialAsync(int n)
 
 Process finished with exit code 0.
 ```
+## поломанный код
+```
+static async void FactorialAsync(int n)
+{
+    Task task = null;
+    try
+    {
+        task = Task.Run(()=>Factorial(n));
+        await task;
+    }
+    catch (Exception ex)
+    {
+        Console.WriteLine(task.Exception.InnerException.Message);
+        Console.WriteLine($"IsFaulted: {task.IsFaulted}");
+    }
+}
+```
+```
+error
+```
+## эксепшен не эксепшен, вывод с неба упал
+```
+static async Task DoMultipleAsync()
+{
+    Task allTasks = null;
+ 
+    try
+    {
+        Task t1 = Task.Run(()=>Factorial(-3));
+        Task t2 = Task.Run(() => Factorial(-5));
+        Task t3 = Task.Run(() => Factorial(-10));
+ 
+        allTasks = Task.WhenAll(t1, t2, t3);
+        await allTasks;
+    }
+    catch (Exception ex)
+    {
+        Console.WriteLine("Исключение: " + ex.Message);
+        Console.WriteLine("IsFaulted: " + allTasks.IsFaulted);
+        foreach (var inx in allTasks.Exception.InnerExceptions)
+        {
+            Console.WriteLine("Внутреннее исключение: " + inx.Message);
+        }
+    }
+}
+```
+```
+Исключение: -3 : число не должно быть меньше 1
+IsFaulted: True
+Внутреннее исключение: -3: число не должно быть меньше 1
+Внутреннее исключение: -5: число не должно быть меньше 1
+Внутреннее исключение: -10: число не должно быть меньше 1
+```
+## никакой возможности нет, это афера
+```
+static async void FactorialAsync(int n)
+{
+    try
+    {
+        await Task.Run(() => Factorial(n)); ;
+    }
+    catch (Exception ex)
+    {
+        await Task.Run(()=>Console.WriteLine(ex.Message));
+    }
+    finally
+    {
+        await Task.Run(() => Console.WriteLine("await в блоке finally"));
+    }
+}
+```
+```
+error
+```
 ### // Отмена асинхронных операций
 ```
 using System;