C语言/C++编程学习异常处理:如何处理c++中的异常

C语言是面向过程的,而C++是面向对象的

C和C++的区别:

C是一个结构化语言,它的重点在于算法和数据结构。C程序的设计首要考虑的是如何通过一个过程,对输入(或环境条件)进行运算处理得到输出(或实现过程(事务)控制)。

C++,首要考虑的是如何构造一个对象模型,让这个模型能够契合与之对应的问题域,这样就可以通过获取对象的状态信息得到输出或实现过程(事务)控制。 所以C与C++的最大区别在于它们的用于解决问题的思想方法不一样。之所以说C++比C更先进,是因为“ 设计这个概念已经被融入到C++之中 ”。

C与C++的最大区别:在于它们的用于解决问题的思想方法不一样。之所以说C++比C更先进,是因为“ 设计这个概念已经被融入到C++之中 ”,而就语言本身而言,在C中更多的是算法的概念。那么是不是C就不重要了,错!算法是程序设计的基础,好的设计如果没有好的算法,一样不行。而且,“C加上好的设计”也能写出非常好的东西。

异常是指不符合规则或泛化的实例。它是程序执行过程中可能出现的问题的一个指示。异常处理的机制提供了一种方法,将控制和信息从执行的点处转移到处理程序例程的位置。处理程序例程为程序员提供了一个机会窗口,使其能够以适当的方式屈服于优雅的终止或处理它。本文介绍了c++中异常处理机制的实现方法。

C语言/C++编程学习异常处理:如何处理c++中的异常_第1张图片

小编推荐一个学C语言/C++的学习裙【 六九九,四七零,五九六 】,无论你是大牛还是小白,是想转行还是想入行都可以来了解一起进步一起学习!裙内有开发工具,很多干货和技术资料分享!

概述

程序从执行某个任务开始。如果执行特定任务的代码运行顺利,则执行下一个任务,直到程序完成。现在,如果在执行过程中出现任何错误,代码就会回到错误处理例程中。错误处理逻辑与程序逻辑混杂在一起。尽管这种混合形式很好,但它使代码难以读取、维护和调试,即使对于中等规模的程序也是如此。

注意,在C中提供错误处理机制非常原始。语言本身并没有直接的支持。因此,我们在这里所做的是访问函数返回值的低级形式。按照惯例,如果一个函数返回一个负值或NULL,则表示一个错误。有时,在函数调用期间,一个名为errno的全局变量被设置为一个错误指示器。头文件的错误。h定义了许多这样的错误代码。

对错误处理使用异常会带来清晰性,并使代码更简单,可以将异常例程与程序逻辑分离。我们可以单独处理。这带来了巨大的灵活性;除此之外,我们可以决定处理我们选择的异常,将它们分组到相关的类型中,或者完全忽略它们。

在c++中应用异常处理

在try中包含了c++异常。catch块。try块包含异常可能发生的代码。它由关键字尝试定义,然后是大括号。如果发生异常,则捕获处理程序处理该异常并处理该异常。catch部分也是一个关键字,其次是大括号。每个try块都附带至少一个立即跟踪它的捕获处理程序。可能有多个捕获处理程序与一个try块关联。在这种情况下,当发生异常时,适当的catch处理程序将执行与所发生的异常类型匹配的类型。匹配是根据抛出的异常或其继承的基类进行的。

下面是一个说明基本思想的例子:

C语言/C++编程学习异常处理:如何处理c++中的异常_第2张图片

异常被设计为只处理同步的错误,如访问数组的索引、除法、算术溢出、内存分配失败等等。异步异常,如键盘和鼠标中断、网络消息接收、I / O完成等,无法处理,因为这些事件是并行发生的,独立于程序控制流。

一个异常Re-thrown

程序可以决定部分地处理异常或根本不处理它。在这种情况下,它可以将责任委托给另一个处理程序。

C语言/C++编程学习异常处理:如何处理c++中的异常_第3张图片

小编推荐一个学C语言/C++的学习裙【 六九九,四七零,五九六 】,无论你是大牛还是小白,是想转行还是想入行都可以来了解一起进步一起学习!裙内有开发工具,很多干货和技术资料分享!

在main的try块中调用函数func1。函数func1也包含一个try…catch块。throw语句抛出一个标准库类异常的实例,称为异常。catch处理程序(func1)捕获这个异常并再次抛出它,然后被main中定义的catch块捕获。main中的catch块与异常无关,并终止程序。

异常规范

我们可以为一个列举异常列表的函数创建一个抛出列表。

这个函数只能抛出抛出的异常。如果抛出列表中没有指定异常,则异常处理机制将调用意外函数并终止程序。然而,如果我们不提供一个抛出列表,它会自动调用意想不到的函数。(意外函数的行为可以使用set_unexpected函数进行自定义。有关这方面的更多信息,请参阅c++标准文档。

小编推荐一个学C语言/C++的学习裙【 六九九,四七零,五九六 】,无论你是大牛还是小白,是想转行还是想入行都可以来了解一起进步一起学习!裙内有开发工具,很多干货和技术资料分享!

大多数现代编程语言都有作为其特性之一的异常处理能力。一些语言,比如Java,从一开始就把它牢记于心。由于这个原因,使用异常处理机制非常常见。另一方面,c++是C的重构;异常处理是后面的一个附加项。而且,这种功能必须以这样的方式合并,以不影响已经存在的绝大多数代码,同时利用该特性的好处。因此,异常处理的设计决策在将其纳入实际实现之前有几个方面需要考虑。Andrew Koenig和Bjarne Stroustrup对c++的文章异常处理奠定了基础,并对其设计原则提供了重要的见解。

服务器开发工程师、人工智能、云计算工程师、信息安全(黑客反黑客)、大数据 、数据平台、嵌入式工程师、流媒体服务器、数据控解、图像处理、音频视频开发工程师、游戏服务器、分布式系统、游戏辅助等

你可能感兴趣的:(C语言/C++编程学习异常处理:如何处理c++中的异常)