首页  /  C++教程  /  异常的概念  /  

异常的概念

点击打开在线编译器,边学边练

程序的错误通常包括:语法错误、逻辑错误、运行异常

下面分别介绍:

  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++异常处理机制