异常
xinyue_htx
自建博客https://xinyuehtx.github.io/
展开
-
FirstChanceException原理
异常处理是代码中很重要的一项注意点。但是有时候一些不恰当的异常处理,反而会影响我们在代码运行时的调试。 出现问题 假如我们有这么一段代码,我期望调用Bar方法,输出“黄腾霄是帅哥”。 但是在实际运行中,其中的一个方法Foo抛出了一个异常。 而作为代码书写者,为了确保软件的正常运行,将这个方法的所有异常都吞掉了。 此时导致的结果就是,用户端看到软件运行正常,但是没有期望的输出 static v...原创 2020-02-18 09:59:04 · 681 阅读 · 0 评论 -
小心使用HResult进行比较
在c#代码中处理一些系统出现的异常的时候,常常需要对异常的HResult属性进行处理。 于是我们就会写出以下代码 if(e.HResult==0x80030005) { ... } 然而有时候会惊奇的发现结果并没有如预期的进入if分支 so why 事实上如果你安装了Resharper,就会在这句代码里面得到提示 因为我们的HResult的值是uint,而Exception.HRes...原创 2020-01-25 22:39:53 · 257 阅读 · 0 评论 -
请不要依赖于异步代码的调用方catch异常
熟悉了c#的异步方法后,各种是不是就会有一种一发不可收拾的情况 对于我们熟悉的 async/await 方法,我们知道await可以执行一个异步方法,并且在方法结束后“继续”当前方法之后的代码。 这个对于执行耗时操作,且不阻塞当前线程的情形非常有效,例如 foo() { await A_async(); B(); } 那么假设下如果方法A_async会抛出异常,那怎么办。 很简...原创 2020-01-24 18:32:59 · 225 阅读 · 0 评论