前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >无法捕获到async await的错误

无法捕获到async await的错误

作者头像
javascript.shop
发布于 2020-02-14 09:26:31
发布于 2020-02-14 09:26:31
1.3K00
代码可运行
举报
文章被收录于专栏:杰的记事本杰的记事本
运行总次数:0
代码可运行

最近在做.net项目中遇到无法捕获到错误的问题,即使在全局的错误捕获中,也依然没有捕获到,直接造成系统奔溃,究其原因是用了async void 的方法,async void是要避免使用的,详情可以看MSDN这篇文章: https://docs.microsoft.com/zh-CN/archive/msdn-magazine/2013/march/async-await-best-practices-in-asynchronous-programming

如下代码是错误的:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public async void Foo()
{
    var x = await DoSomethingAsync();
}

public void DoFoo()
{
    try
    {
       Foo();
    }
    catch (Exception ex)
    {
        // 这里永远不会被捕获到
    }
}

根据MSDN文章以下代码才是最佳做法:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
// 最重要的是需要捕获错误的方法,要避免async void,改成 async Task
public async Task Foo()
{
    var x = await DoSomethingAsync();
}

public async void DoFoo()
{
    try
    {
        await Foo();
    }
    catch (Exception ex)
    {
         // 这里可捕获到错误
    }
}
//或//
public void DoFoo()
{
    try
    {
        Foo().Wait();
    }
    catch (Exception ex)
   {
        // 这里可捕获到错误
    }
} 
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020年2月4日20,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
SVG基础
SVG可缩放矢量图形Scalable Vector Graphics是基于可扩展标记语言XML,用于描述二维矢量图形的一种图形格式。SVG严格遵从XML语法,并用文本格式的描述性语言来描述图像内容,因此是一种和图像分辨率无关的矢量图形格式,SVG于2003年成为W3C推荐标准。
WindRunnerMax
2020/08/27
2.5K0
Arcgis for JavaSctipt之常用Layer详解
概述:Arcgis for Javasctipt中常见的layer有动态图层(ArcGISDynamicMapServiceLayer
牛老师讲GIS
2018/10/23
1.5K0
Arcgis for JavaSctipt之常用Layer详解
UWP 手绘视频创作工具技术分享系列 - SVG 的解析和绘制
本篇作为技术分享系列的第一篇,详细讲一下 SVG 的解析和绘制,这部分功能的研究和最终实现由团队的 @黄超超 同学负责,感谢提供技术文档和支持。  首先我们来看一下 SVG 的文件结构和组成 SVG
Shao Meng
2018/04/28
1.8K0
UWP 手绘视频创作工具技术分享系列 - SVG 的解析和绘制
SVG精髓阅读笔记
SVG,是一种可缩放矢量图形,一种XML应用.可以以一种简洁,可移植的形式表示图形信息.
拿我格子衫来
2022/01/24
1.6K0
前端架构师之路03_移动端规范兼容处理
移动端开发中我们使用 rem 作为基本计量单位,同时将根节点默认字号大小设为 font-size:62.5%,因移动端浏览器默认字号大小为 16px,16*62.5% 刚好为 10px
张哥编程
2024/12/13
2140
前端架构师之路03_移动端规范兼容处理
SVG学习笔记,持续记录。
SVG是一种用XML定义的语言,用来描述二维矢量及矢量/栅格图形。SVG提供了3种类型的图形对象:矢量图形(vectorgraphicshape,例如:由直线和曲线组成的路径)、图像(image)、文本(text)。图形对象还可进行分组、添加样式、变换、组合等操作,特征集包括嵌套变换(nestedtransformations)、剪切路径(clippingpaths)、alpha蒙板(alphamasks)、滤镜效果(filtereffects)、模板对象(templateobjects)和其它扩展(extensibility)。
房东的狗丶
2023/02/17
3.1K0
SVG学习笔记,持续记录。
SVG基础知识
之前有提到过SVG描边动画,可以实现很神奇的手写签名动画效果,当然,理论上可以用来实现任意不规则路径填充动画
ayqy贾杰
2019/06/12
2.2K0
SVG初识
个人认为现在svg可能有点过时了,svg的很多功能css3或者canvas都能做到很好的效果,
用户3055976
2018/09/12
1.6K0
SVG初识
win10 uwp 显示SVG win2d 使用 svg
这些图片在http://www.zcool.com.cn/下载,不知道是不是不能直接用
林德熙
2018/09/18
1.3K0
win10 uwp 显示SVG
            win2d 使用 svg
SVG - 基本的SVG属性
SVG - 基本的SVG属性 HTML5学堂:在前一篇文章当中,我们讲解了SVG的基本知识,并且为大家介绍了如何在html文件当中书写SVG代码。今天我们具体讲解SVG的基本属性,如何使用SVG完成线、圆等图形的绘制。 line - 直线 拥有四中基本属性 x1 属性在 x 轴定义线条的开始 y1 属性在 y 轴定义线条的开始 x2 属性在 x 轴定义线条的结束 y2 属性在 y 轴定义线条的结束 demo <line x1 = "20" y1 = "20" x2 = "200" y2 = "180" st
HTML5学堂
2018/03/12
4.3K0
一篇文章带你了解SVG 阴影
所有互联网的SVG滤镜定义在<defs>元素中。<defs>元素定义短并含有特殊元素(如滤镜)定义<filter>标签用来定义SVG滤镜。
前端进阶者
2021/03/03
9400
一篇文章带你了解SVG 阴影
一个比想象中更骚气的圆-svg实现
之前写了一篇Canvas画图-一个比想象中更骚气的圆(渐变圆环),其实SVG也可以实现类似的效果,而且两者api惊人的相似。 关于SVG SVG是一种矢量图形,在图形改变尺寸的情况下质量不会损失。 相比canvas,svg有一个很大的优势就是内联进html的时候可以像操作dom一样操作svg,这样做起动画来非常方便。 本文不会介绍svg的基础知识,不过也没涉及什么复杂的东西,基于xml的语法还是比较好理解的。 期望实现的效果和Canvas一样是颜色非对称的沿着圆周进行渐变。 SVG的渐变 和之前讲ca
Bob.Chen
2018/05/02
3.4K0
一个比想象中更骚气的圆-svg实现
小心!最近在 Python 项目开发中遇到的3个安全漏洞
在修复完毕之后,来给大家简单地总结分享一下,以提高大家在程序编写和项目开发中的安全意识。
州的先生
2021/09/29
8320
卡牌特效: svg不规则倒计时动效
导语:直播过程中,往往会有各种动画特效增强直播效果,近期需求中,设计要求在企鹅电竞PC官网上实现一种卡牌效果,在不规则图片上叠加倒计时效果。前端项目中,往往使用css来完成动画,像倒计时效果也可以使用css完成,但是相对来说css实现方案比较复杂,层次嵌套较多。倒计时动效要求覆盖图片的倒计时阴影为非规则且半透明的。在日常的圆环动画中,也会有类似的倒计时效果,只不过圆环是规则的,实现起来比较简单。但是基于圆环效果,再加上svg的mask特性,就可以实现此类特殊效果。 [ 实现动态图]  css的m
腾讯技术工程官方号
2019/07/17
2.3K0
卡牌特效: svg不规则倒计时动效
FinClip小程序里如何安全使用SVG
网上零零散散有一些关于在小程序中如何使用SVG的内容,但不是语焉不详,就是信息不完整。在此整理一下,供哪怕是此前从来没有接触过SVG的开发者也可以参考,迅速利用。首先SVG可以被视为一种DSL(Domain Specific Language),也就是说它并不仅仅是JPEG、PNG、GIF之外的又一种图片格式,它还是一种“代码”;也因此,它既有无比的潜力让开发者发挥创意作出有意思的应用,它也有潜在安全风险。在小程序中,起码至目前为止,它的使用方式和在普通网页并不完全一样。
Onegun
2022/05/07
2.4K0
FinClip小程序里如何安全使用SVG
想要字体图标设计师却给了SVG?没关系,自己转
Varlet提供了一些常用的图标,图标都来自 Material Design Icon。
街角小林
2022/10/27
1.3K0
在小程序中 SVG 的打开方式
第一种,也是最简单直观的方式,即把svg后缀的文件视作为和PNG、JPEG、GIF类似的图片:
pak
2022/08/11
2.2K0
SVG 入门指南(初学者入门必备)
SVG,即可缩放矢量图形(Scalable Vector Graphics),是一种 XML 应用,可以以一种简洁、可移植的形式表示图形信息。目前,人们对 SVG 越来越感兴趣。大多数现代浏览器都能显示 SVG 图形,并且大多数矢量绘图软件都能导出 SVG 图形。SVG 主要可以概括为以下几点:
前端小智@大迁世界
2020/07/29
3.5K0
SVG 入门指南(初学者入门必备)
SVG基础知识速查笔记
svg是指可缩放矢量图形,是用于描述二维矢量图形的一种图形格式。svg使用XML格式来定义图形,除ie8之前版本外,绝不部分浏览器均支持svg,可将svg文本直接嵌入HTML中显示。
前端_AWhile
2019/09/06
2K0
SVG
HTML体系中,最常用的绘制矢量图的技术是SVG和HTML5新增加的canvas元素。这两种技术都支持绘制矢量图和光栅图。不过canvas更偏重于动画的制作。所以,绘制矢量图的大任落到了SVG身上。
踏浪
2019/07/31
5.9K0
SVG
相关推荐
SVG基础
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档