当前位置: 移动技术网 > IT编程>开发语言>.net > 《C#并发编程经典实例》学习笔记—2.8 处理 async Task 方法的异常

《C#并发编程经典实例》学习笔记—2.8 处理 async Task 方法的异常

2019年10月13日  | 移动技术网IT编程  | 我要评论

李晨家世背景甩范冰冰,诺基亚x300软件下载,范军简介

异常处理一直是所有编程语言不可避免需要考虑的问题,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)
    {
        // 这里,异常被正确地捕获。
    }
}

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网