首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

C+学习笔记:第三课

图:竹沥夏至

文:竹沥夏至

C++学习笔记:第三课

C++编程时的错误

我已经意识到从现在开始我的大部分时间将花在寻找和纠正自己的错误中。------Maurice Wilkes,1949

我们在编程时会遇到很多错误,错误的分类有很多种,例如:

️编译时错误:有编译器发现的错误。语法错误和类型错误。

️链接时错误

️运行时错误

️逻辑错误

所以我们在编程中经常检查以下的错误列表。

1.缺少规划

2.不完备的程序

3.意外参数

4.意外输入

5.意外状态

6.逻辑错误

实际上我们要从一开始就要关注错误处理,因为,没有认真考虑过错误处理的软件几乎是不可能正常工作的,它还会被重新写一遍。

语法错误和类型错误,现在的编译器能够非常准确的指出错误代码发生的行数,所以我们可以比迅速的对错误的源代码进行定位。

令你惊奇的是,当你有了一定的编程经验后,你会希望编译器能够拒绝更多的代码,而不是更少。你需要脱离编译器去检查错误和避免编译器的弱点。但是你不要过于自信,程序已经通过编译并不意味它能够运行。即使它能够运行,在你消除逻辑错误之前,通常程序会给你错误的结果。

我们期待着自己的代码能够稳定的运行,但是事实上却并不如人所愿,因为我们在写代码时很可能出现,考虑代码的调用和人为的输入都是规规矩矩的输入我们所预想的格式之外的情况。1.我们不能改变函数的定义。2.被调函数不知道它是在哪里被调用的。3.被调函数不知道自己应该如何处理错误。4.函数的性能是否应该给予考虑。

解决编程上的未知可能出现的错误通常有有两种处理手段。1.报告错误:在调用函数的内部对形式参数进行检查,在调用函数传实际参数时对输入的参数进行检查。

2.异常

一个函数发现一个自己不能处理的错误,他不是正常的返回,而是抛出一个异常来表示错误的发生。

这种强大的机制我们将在后续的课程中进行讲解。因为他对编程新手极其不友好。

那么有多少种我们至少该考虑的异常情况呢?

1.参数错误

2.范围错误

3.输入错误

4.窄化错误

5.逻辑错误

逻辑上的错误通常是很难处理的,我们为了得到正确的结果我们需要对所得到的结果进行“估计”。估计这种结果是否符合常识是否合理。例如,开车从纽约到丹弗需要15小时,但是它们之间的距离是2000英里,对于平均驾驶来说,130英里每小时的平均速度是很困难的。

调试

调试这个事情就很有意思了,通常一个庞大的工程开发时间假设是单位1的话,那么调试时间就占据开发时间的2/3,占据整个工程完结时间的2/5。所以好好写程序,做好前置条件和后置条件的检查,模块化代码,写出工整的好程序也是为我们的后续工作节约时间。

那么,我们这一小节的知识点就完结了,我们要正视自己程序中的错误。之后你就可以肆无忌惮地测试你的程序了。

竹沥夏至,一个用心的公众号。

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180113G0FPMC00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券