在C#中抛出异常后返回语句

发布时间:2019-11-09 发布网站:脚本之家
脚本之家收集整理的这篇文章主要介绍了在C#中抛出异常后返回语句脚本之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
Systems.Collections.Generic.Dictionary类的以下函数在抛出异常后有返回语句,有没有人知道为什么?
public TValue this[TKey key] {
        get { 
            int i = FindEntry(key);
            if (i >= 0) return entries[i].value;
            ThrowHelper.ThrowKeyNotFoundException();
            **return default(TValue);** 
        }
        set { 
            Insert(key,value,false); 
        }
    }

解决方法

即便如此
ThrowHelper.ThrowKeyNotFoundException();

当然会抛出异常,编译器不够复杂,无法证明它永远不会做任何其他事情.而且由于无法证明函数永远不会返回,因此必须假设它可以返回.

Eric Lippert刚刚在他的博客上完成了一个关于这个问题的“永不言败”的迷你系列.

http://blogs.msdn.com/b/ericlippert/archive/2011/02/21/never-say-never-part-one.aspx

事实证明,这是Halting Problem的一个简单案例,已经证明它在图灵机上是不可判定的.

总结

以上是脚本之家为你收集整理的在C#中抛出异常后返回语句全部内容,希望文章能够帮你解决在C#中抛出异常后返回语句所遇到的程序开发问题。

如果觉得脚本之家网站内容还不错,欢迎将脚本之家网站推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:76874919,请注明来意。

脚本之家官方公众号

微信公众号搜索 “ 程序精选 ” ,选择关注!

微信公众号搜索 “ 程序精选 ” ,选择关注!
精选程序员所需精品干货内容!

标签: