写在前面:作为一只小白,感谢小甲鱼老师提供这么好的入门课程。因此在这里做个笔记,如有侵权请联系删除

​​​​​​​www.fishc.com

。正如预告所述,要想掌握调试技巧,最有效的学习方法是反复地尝试,犯错误,再调试,实践出真知

①编译时错误

程序出错可以分为两大类:编译时错误(complie-time error)运行时错误(run-time error)

相比之下,编译时错误显然时比较轻的。因为编译将会告诉你它发现了什么错误和它是哪行代码发现了错误的。

我们需要做的只是认真观察和分析编译器给出的出错信息,然后按语法要求改正即可。

建议一:培养并保持一种编程风格!

第一个建议是在编程的时候保持一种风格,一旦决定了要如何命名变量和函数,要按何种格式编写代码,如何缩进代码块等,就应该一直保持下去。

建议二:认真对待编译器给出的错误/警告信息

有时候,编译器给出的警告信息完全没道理,但大多数时候还是很有用的,虽然警告不影响程序编译,但千万不要忽视它们。

建议三:三思而后行

开始写代码前先画流程图。

编译错误不要立刻修改源代码,应该先完整地审阅一遍源代码,再开始纠正错误。因为冒失地修改源代码往往会造成错误越改越多,心情越改越乱地纠结局面。

建议四:注意检查最基本地语法

再有经验地妞也会上钩,再有经验地程序员也同样会犯一些小错误。

建议五:把可能有问题的代码行改为注释。

不要轻易整行整行地删除代码,把可能有问题地代码先改成注释,看错误是否还在。排除法。。。。

建议六:换一个环境或开发工具试试

一般来说,编译器不会有问题,但如果你始终无法确定问题出现在哪里,不妨换一下编译器或者操作系统,常常有时候弱智地杀软会阻止编译器导致编译器犯傻。

建议七:检查自己是否已经把所有必要地头文件全部include进来。

例如:只有#include <iostream>才能用cout 与此相类似地情况成百上千,并容易忽略,注意调用不熟悉地函数前查看相关文档,确定该函数需要哪些头文件支持。

建议八:留意变量地作用域和命名空间

程序代码对变量地访问权限可能导致各种各样地问题,这个知识今后我们会深入探讨。

建议九:休息一下

在情绪变得越来越焦躁地时候,你发现和解决问题地能力会直线下降。这时候应该让自己放松一下,离开计算机,等头脑清醒了再回来解决问题。做开发地时候也是同样哦。

建议十:使用调试工具

绝大多数IDE都有一个内建地调试器,一定要学习使用它并经常使用它。

最后,避免错误地另一个好方法就是把调试好的代码另外保存起来并不再改动它。

然后把代码划分成各个模块,用它们(在你能保证它们都没有问题的情况下)来搭建新的应用程序,会让你减少很多开发和调试的时间。

③运行时错误

运行时错误往往远比编译时错误更难以查找和纠正,运行时错误一般都不会有正式出错信息。

它们的发生几率因不同程序思路不同而不同,很少有规律可循。

更多的情况是时有时无,有的程序在这台计算机上很正常,在另一台计算机上就总是出问题。或者,某几个用户经常遇到这样或那样的问题,其他用户却都正常。

运行时错误的外在表现可以说是千变万化!

经验一:还是培养并保持一种良好的编程风格!

杂乱无章是程序员最大的敌人,找到你最喜欢的编程风格然后一直保持下去吧。

经验二:多用注释,用好注释

如果忘记了某段代码的用途和理由,再想回来调试修改这段代码可就费劲了。这里要注意的是,必须让注释和代码保持同步,一旦修改了代码,就应该对注释进行相应的修改。

注意不要做无谓的注释。

经验三:注意操作符的优先级

操作符的优先级决定着有关操作的发生顺序,如果想让一些列操作按照希望的顺序发生,最保险的方法是用括号来确保这种顺序。

另外,不要对操作顺序做任何假设,在某些场合 ’++‘ * 和> 之类的高优先级操作符的行为也不见得是你想象那样哦。

经验四:千万不要忘记对用户输入和文件输入进行合法性检查。

如果让某程序员去调试他本人编写的代码,他往往不能把所有的漏洞全都找出来   因为他会下意识地避免各种不正常地做法。

经验五:不要做任何假设

这是一句老生常谈了,但至今仍适用于所有场合。

不要想当然地认为一个应该发生地操作比如打开一个文件,创建一个新的内存块,等等。不要想当然地认为用户肯定会按照你的意愿去使用你的程序。

经验六:把程序划分成一些比较小地单元模块来测试。

程序越长,就越难以测试,只要条件允许,就应该把一个比较大地程序划分成一系列比较小地单元模块来分别加以测试。

小甲鱼C++ 30 错误处理和调试技巧1 鬼扯内容相关推荐

  1. 错误处理和调试2 - C++快速入门31

    错误处理和调试2 让编程改变世界 Change the world by program 让函数返回错误代码 这种方式我们已经了然于心,但我们仍有进一步继续讨论的必要. 不知道大家还记不记得很久很久以 ...

  2. C++学习记录(B站小甲鱼C++快速入门视频)

    文章目录 C++特点: 封装 抽象 继承 多态 从一个小程序开始 第二个小程序(IO) cin跟cout对象的多个方法 第三个小程序(File) 多种文件操作用or操作符`"|"` ...

  3. C语言调试技巧(以vs编译器为例)

    实用调试技巧 什么是bug 调试是什么,调试有何重要 调试是什么? 调试的基本步骤 Debug和Release的介绍. Windows环境调试介绍 调试快捷键 调试的时候查看程序当前信息 查看临时变量 ...

  4. js经验分享 JavaScript反调试技巧

    在此之前,我一直都在研究JavaScript相关的反调试技巧.但是当我在网上搜索相关资料时,我发现网上并没有多少关于这方面的文章,而且就算有也是非常不完整的那种.所以在这篇文章中,我打算跟大家总结一下 ...

  5. JavaScript 反调试技巧

    (点击上方公众号,可快速关注) 英文: x-c3ll   译文:FreeBuf.COM www.freebuf.com/articles/system/163579.html 写在前面的话 在此之前, ...

  6. 小甲鱼 OllyDbg 教程系列 (十七) : 反调试

    小甲鱼 OD 教程:https://www.bilibili.com/video/av6889190?p=27 ReverseMe.A.B.C.D 下载地址:https://pan.baidu.com ...

  7. 小甲鱼 OllyDbg 教程系列 (二) :从一个简单的实例来了解PE文件

    小甲鱼视频讲解: https://www.bilibili.com/video/av6889190?p=6 https://www.bilibili.com/video/av6889190?p=7 从 ...

  8. 【小甲鱼】python零基础入门学习笔记 03讲~43讲

    本篇基于[莫烦]python基础教程,属于查漏补缺 建议学习顺序 小甲鱼->莫烦numpy&pandas 目录 第003讲 插曲之变量和字符串 课堂笔记 变量 变量 需要注意的地方 字符 ...

  9. 最新《小甲鱼C++编程快速入门教程》

    这套教程一共40讲,内容真心不错,其实大家看看目录也就能得出结论了  ===============课程目录=============== <鱼C论坛小甲鱼C++编程快速入门培训系列教程> ...

最新文章

  1. JAVA学习--异常Exception
  2. 利用LVS+Keepalived 实现高性能高可用负载均衡服务器
  3. MSSQL 访问Mysql
  4. 一个能从别人的观念来看事情,能了解别人心灵活动的人,永远不必为自己的前途担...
  5. Docker-Compose简介与Ubuntu Server 上安装Compose
  6. mysql产品优化方案,MySQL优化方案
  7. 在Windows下删除Linux系统的方法
  8. 两个股市真理之间的矛盾
  9. 软考 2015年下半年卷 错题知识点记录
  10. UVA - 10105 Polynomial Coefficients
  11. linux 流量控制
  12. Android 长图大图加载
  13. 大数据联姻“互联网+”驱动绿色变革
  14. 3GPP TS 23502-h20 中英文对照 | 4.4.1.3 N4 Session Modification procedure
  15. 淘宝电商:淘宝卖家如何快速提升店铺自然搜索流量?
  16. 商城类型app 英文名称
  17. Android开发学习——3.平台版本、SDK版本、API级别
  18. 2023年PMP 续证的费用和流程最全介绍
  19. 微课怎么录制?7款微课制作工具分享,教师效率提升必备神器!
  20. kong组件_Kong

热门文章

  1. CarSim仿真快速入门(一)
  2. 哪个企业邮箱海外收发邮件好用呢?
  3. 在 C# 中使用 SpanT 和 MemoryT 编写高性能代码
  4. PHP开发API接口注意事项
  5. 活动.WEBGAME与SNS社区大会
  6. qt记事本(精简版)
  7. Mysql的介绍和软件环境的部署
  8. 编码显示器和六位7段数码管
  9. 用C语言写个人财务管理系统
  10. mac桌面文件删除怎么恢复?别急,有办法!