Dotcpp  >  编程教程  >  C++异常处理  >  C++异常的概念

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++为我们提供了异常处理的方案。



本文固定URL:https://www.dotcpp.com/course/83

C++教程
第一章 C++入门
第二章 C++表达式和控制语句
第三章 C++函数调用与重载、内联
第四章 C++类和对象
第五章 C++继承与派生
第六章 C++多态性
第七章 C++异常处理
第八章 C++文件操作
Dotcpp在线编译      (登录可减少运行等待时间)