代码改变世界

编程习惯-关于异常

2010-11-06 13:35  Back2Earth  阅读(307)  评论(0编辑  收藏  举报

异常就是一种程序中没有预料到的问题,既然属于没有预料到的,就不应该不想看异常就把所有异常catch吃掉,本来前面的操作已经失败了,后续的代码也就没有意义了,不应该继续执行了,应该让用户或者开发人员知道“这里出错了”,而不是继续掩耳盗铃的执行下去,否则很容易造成程序进入一个逻辑混乱的状态,出现各种奇怪的问题。

《C#面向对象基础》这个视频教程中也提到了,异常是C#中提供的一个比以前错误码机制更好的一种错误处理机制,如果这么讨厌异常还不如回到错误码的时代更清净呢,在错误码时代只要不出现“Access Violation”,管它程序逻辑是不是有问题,都可以一直"耳根清净的执行下去",可是你希望这样吗?

对于有的情况确实需要catch异常的地方,只要不是处理后重新抛出,也最好将异常通过Log4Net等日志工具记录下来,方便开发人员排查问题。

有人说程序一旦出现异常多难看呀?“客户看到一堆异常的英文界面就发怒,还是吃了好呀”,其实不要吃异常和不让用户看到“一堆异常的英文界面”并不冲突,比如在ASP.Net中就可以通过定制错误页的方式来解决,将错误页显示的模式设置为RemoteOnly,这样普通用户看的是定制后的没有“一堆异常的英文界面”的页面,而对于开发人员和系统管理员看到的则还是异常页面,“两不耽误”!

“不要吃异常”、“不要使用魔法数”、“资源最好用using进行管理”等这些非常常见的好的编程习惯是最容易被初学者忽略的,最终不遵守好习惯而自食其果的例子也屡见不鲜,建议大家要认真遵守这些基本的原则,最终受益的仍然是自己。