程序的错误通常包括:语法错误、逻辑错误、运行异常。
下面分别介绍:
1. 语法错误:
这个不必多说,大家在之前的学习一定都知道,就是只程序代码不符合语法要求,在编译、链接时候就由编译器提示出来的错误,好发现。
2. 逻辑错误:
这种情况,是指编译没问题,没有错误,可以运行起来。但程序的输出结果或执行过程不如我们所愿,达不到预期的结果,这种错误就叫做逻辑错误,需要不断的调试、测试来发现。
3. 运行异常:
运行异常(exception)是指程序在运行过程中由于意外的情况,造成的程序异常终止,比如内存不足、打开的文件不存在、除数为0的情况等等。
前面两种我们都已经知道,第三种则是我们本章要详细展开讲解的知识了。通常情况下,导致程序异常错误,虽然无法避免,但是确可以预料,进行预见性的处理,来避免程序崩溃,从而保障程序的健壮性。这种行为我们称之为异常处理。
在过往学习中,我们捕获和处理异常的方法也很多,比如通过if...else判断调用函数的返回值,或在执行代码之前对关键的数据进行检查等等,如果出现问题,则用exit()或abort()等函数来终止程序。
比如:
cin>>a>>b; if(b==0)//捕获异常 { cout<<"Drivide 0!"<<endl; } else { cout<<a<<"/"<<b<<"="a/b<<endl; }
大家可以看到,在过往的学习中,我们往往通过if来进行判断,从而对关键部分进行捕获和预防,但这种方式在使用过程中往往会因为if判断过多,使程序的易读性降低,并且对于需要判断函数返回值的情况,对于那些没有返回值的函数,就束手无策了,为此C++为我们提供了异常处理的方案。
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程