C-Sharp | Java | Python | Swift | GO | WPF | Ruby | Scala | F# | JavaScript | SQL | PHP | Angular | HTML
C# await in catch/finally blocksC# await is a keyword. It is used to suspend execution of the method until the awaited task is complete. In C# 6.0, Microsoft added a new feature that allows us to use await inside the catch or finally block. So, we can perform asynchronous tasks while exception is occurred. Let's see an example. Here, we are calling an asynchronous method inside the catch block. C# await in Catch Block Exampleusing System; using System.Threading.Tasks; using System.IO; using static System.Console; namespace CSharpFeatures { public class ExceptionAwait { public static void Main(string[] args) { addAsync(); } async static Task addAsync() { try { int[] arr = new int[5]; arr[10] = 12; } catch(Exception e) { // Using await in catch block await ExceptionOccured(); } } async static Task ExceptionOccured() { Console.WriteLine("Array Exception Occurred"); } } } Output Array Exception Occurred We can also use await inside the finally block. Let's see an example. C# await in finally block exampleusing System; using System.Threading.Tasks; using System.IO; using static System.Console; namespace CSharpFeatures { public class ExceptionAwait { public static void Main(string[] args) { addAsync(); } async static Task addAsync() { try { int[] arr = new int[5]; arr[10] = 12; } catch (Exception e) { // Using await in catch block await ExceptionOccured(); } finally { // Using await in finally block await ReleasingResources(); } } async static Task ExceptionOccured() { Console.WriteLine("Array Exception Occurred"); } async static Task ReleasingResources() { Console.WriteLine("Resources has been released"); } } } Output Array Exception Occurred Resources has been released
Next TopicC# Auto-Initialize Property
|