c++程序学习
2014-02-22 20:27
155 查看
这篇文章,我将从最基本的开始谈起。但希望可以涉及更广的层面,而不仅仅是为你的程序除错(debug)。你将会看到,我认为除错(debugging)这个字的全部意义,并不只是通过ide的内建机制来运行的。我希望在这篇小小的文章结束时,几乎每个读者都可以学到至少是一件新东西,并把它藏到你的兵器库中。记住,你程序中的错误(bug)越少,你的最终用户对你的程序的感觉就越好;你对错误(bug)的处理越好,用户们发现错误(bug)时就越乐于告诉你以便你改正错误。好了,现在系好安全带,戴上护目镜,让我们开始一段疯狂的路程!
书写干净的代码
首先而且也许是最重要的一点是书写干净、可读的代码是极其重要的。能够在写完一段代码后回顾一下并给它加上注释来说明这段代码用来做什么和为什么这么做,将会省去你以后跟踪代码的无数个痛苦的小时。也许你会多花一点时间来书写,但当你花
4000
过n小时来跟踪那些难以捉摸的bug时,你就会同意多花点时间来让程序代码可读是多么值得了。(你本可以很容易完成除错的)。如果没有这么做过,我建议你停下来,读读另一篇scott的精彩文章-代码的风格(大家需要的话,将会尽快翻译)。
使用异常及异常处理能力
现在进入下一步,这仍然是基于代码的步骤。(除了在极少数的情况下,你不能老是使用系统内建的除错器,所以知道其他可以找出这些麻烦的虫子的办法总是个好主意)。本步骤完全是关于如何做到,更重要的是处理好在你的窗体出现异常时系统扔给你的(产生的)错误。在c++标准得到认可前黑暗的旧日子里,应用程序通常会通过返回值来发出错误信号(这种方法在ole和一些winapi函数中仍在使用)。很显然,你可以很轻易的忽略这些(事实上也是经常的,我的意思是你经常检查一个winapi函数的返回值吗?)。
所以他们决定….,okay,我们需要一个新的机制,一个你不能忽略的。但你可以处理,定制(自定义 customize)。异常就此出现了。想要一个特殊的错误类型标志?容易的很,定义一个新的异常类型(不过是一个类,没别的),抛出来(产生这个异常)。完了。
例子:
throw new myexception(“test exception message”);
书写干净的代码
首先而且也许是最重要的一点是书写干净、可读的代码是极其重要的。能够在写完一段代码后回顾一下并给它加上注释来说明这段代码用来做什么和为什么这么做,将会省去你以后跟踪代码的无数个痛苦的小时。也许你会多花一点时间来书写,但当你花
4000
过n小时来跟踪那些难以捉摸的bug时,你就会同意多花点时间来让程序代码可读是多么值得了。(你本可以很容易完成除错的)。如果没有这么做过,我建议你停下来,读读另一篇scott的精彩文章-代码的风格(大家需要的话,将会尽快翻译)。
使用异常及异常处理能力
现在进入下一步,这仍然是基于代码的步骤。(除了在极少数的情况下,你不能老是使用系统内建的除错器,所以知道其他可以找出这些麻烦的虫子的办法总是个好主意)。本步骤完全是关于如何做到,更重要的是处理好在你的窗体出现异常时系统扔给你的(产生的)错误。在c++标准得到认可前黑暗的旧日子里,应用程序通常会通过返回值来发出错误信号(这种方法在ole和一些winapi函数中仍在使用)。很显然,你可以很轻易的忽略这些(事实上也是经常的,我的意思是你经常检查一个winapi函数的返回值吗?)。
所以他们决定….,okay,我们需要一个新的机制,一个你不能忽略的。但你可以处理,定制(自定义 customize)。异常就此出现了。想要一个特殊的错误类型标志?容易的很,定义一个新的异常类型(不过是一个类,没别的),抛出来(产生这个异常)。完了。
例子:
throw new myexception(“test exception message”);
相关文章推荐
- 用c/c++语言写的一个小的“爬虫”程序学习过程总结
- 初步学习:Eclipse3.6开发C/C++程序(Windows下)
- C++程序学习--C++模板类重载左移操作符<<的细节
- 改善C++ 程序的150个建议学习之建议16:慎用goto
- C++学习笔记1(Windows程序运行原理及程序编写流程)
- 改善C++ 程序的150个建议学习之建议26:用引用代替指针
- C++ 学习之路(8):C++程序的多文件组成
- C++ 学习系列(一)测试程序运行时间—clock()
- 程序开发基础学习二(C++ Google Style 命名规则)
- 【C++学习笔记】03_C++程序结构
- VS2010 C++学习(5):基于DirectShow的视频预览录像程序
- 改善C++ 程序的150个建议学习之建议5:不要忘记指针变量的初始化
- c++学习之--关于程序编译的文章
- 改善C++ 程序的150个建议学习之建议17:提防隐式转换带来的麻烦
- C++学习笔记1——安装GNU编译器,编译运行第一个程序
- c++学习笔记-文本查询程序
- 程序开发基础学习二(C++ Google Style 命名规则)
- 【C++】【学习笔记】【004】从另一个小程序说起
- 【C++再学习】【06】程序以及对象在内存中的布局
- C++ 再学习。。。编写高效安全的C++程序