zoukankan      html  css  js  c++  java
  • 《C#并发编程经典实例》学习笔记—2.8 处理 async Task 方法的异常

    异常处理一直是所有编程语言不可避免需要考虑的问题,C#的异步方法的异常处理和同步方法并无差别,同样要借助 try catch 语句捕获异常。

    首先编写一个抛出异常的方法

    static async Task ThrowExceptionAsync()
    {
        await Task.Delay(TimeSpan.FromSeconds(1));
        throw new InvalidOperationException("Test");
    }
    

    常见的 try catch 处理语句。

    static async Task TestAsync()
    {
        try
        {
            await ThrowExceptionAsync();
        }
        catch (InvalidOperationException) { }
    }
    

    async Task方法的异常存储在Task对象中,Task有一个Exception属性。当Task对象被await调用时,才会引发异常。

    static async Task TestAsync()
    {
        // 抛出异常并将其存储在 Task 中。
        Task task = ThrowExceptionAsync();
        try
        {
            // Task 对象被 await 调用,异常在这里再次被引发。
            await task;
        }
        catch (InvalidOperationException)
        {
            // 这里,异常被正确地捕获。
        }
    }
    
  • 相关阅读:
    Html笔记(四)图像
    Html笔记(三)列表
    Html笔记(二)字体
    Html笔记(一)概述
    mysql基础~经典题目
    MGR架构~原理细节分析(8.0最新版)
    hiveserver2
    恋爱心理
    和谐之道
    智者遇事求心,庸者遇事求境
  • 原文地址:https://www.cnblogs.com/AlienXu/p/async_Task_Exception.html
Copyright © 2011-2022 走看看