代码改变世界

随笔档案-2011年8月6日

Effective C# 学习笔记(四十七)对异常进行strong guarantee 策略处理

2011-08-06 22:13 by 小郝(Kaibo Hao), 487 阅读, 收藏,
摘要: 异常处理的三种策略:Basic guarantee:在抛出异常前,保证所有资源没有溢出,而且各个对象属性状态是合法状态; Strong guarantee:基于Basic guarantee,其强调对象的属性状态还原为失败修改前的状态。(该策略确保了从异常中修复和简化异常处理操作); No throw Exception guarantee:在方法中不抛出异常,所有的错误都在该方法中处理。 阅读全文

Effective C# 学习笔记(四十六)对异常进行分类并逐类处理

2011-08-06 22:05 by 小郝(Kaibo Hao), 373 阅读, 收藏,
摘要: 对于异常的认识 1. 异常并不是包括所有错误条件 2. 抛出的异常最好是有定义的针对特殊类别的异常类型,不要总是使用System.Exception来处理异常,这样你可以针对不同的异常进行不同的Catch操作。可以从以下方面定义(这里只是抛砖引玉): a. 找不到文件或目录 b. 执行权限不足 c. 丢失网络资源 阅读全文

Effective C# 学习笔记(四十五)减少装箱拆箱行为

2011-08-06 10:35 by 小郝(Kaibo Hao), 619 阅读, 收藏,
摘要: 值类型用来存储数据,引用类型用来表现多态,而所有.net framework中的类型都继承自System.Object。这看起来有些冲突。.NET framework 用装箱和拆箱来解决两类类型间的转换。但是这种操作是十分消耗资源且影响性能的。 装箱:把一个值类型放入一个未命名的引用类型中,以使得该类型可被当作引用类型使用。 拆箱:从一个引用类型中将值类型的值Copy取出。 阅读全文