编程|编程语言之C ++中的异常处理
文章图片
文章图片
文章图片
文章图片
文章图片
与C相比 , C ++的优点之一是异常处理 。 异常是程序在执行过程中遇到的运行时异常或异常情况 。 有两种类型的异常:a)同步 , b)异步(例如:超出程序的控制范围 , 光盘故障等) 。 为此 , C ++提供了以下专用关键字 。
try:表示可能引发异常的代码块 。
catch:表示当抛出特定异常时执行的代码块 。
throw:用于引发异常 。 也用于列出函数抛出但无法自行处理的异常 。
为什么要进行异常处理?
以下是异常处理相对于传统错误处理的主要优点 。
1.错误处理代码与普通代码的分离:在传统的错误处理代码中 , 总是存在其他条件来处理错误 。 这些条件和处理错误的代码与正常流程混在一起 。 这使得代码的可读性和可维护性较差 。 使用try catch块 , 用于错误处理的代码将与正常流程分开 。
2.函数/方法可以处理他们选择的任何异常: 函数可以引发许多异常 , 但是可以选择处理其中的一些异常 。 引发但未被捕获的其他异常可以由调用方处理 。 如果呼叫者选择不捕获它们 , 则异常由呼叫者的呼叫者处理 。 在C ++中 , 函数可以使用throw关键字指定其引发的异常 。 此函数的调用者必须以某种方式处理异常(通过再次指定它或捕获它)
3.错误类型的分组:在C ++中 , 基本类型和对象都可以作为异常抛出 。 我们可以创建异常对象的层次结构 , 在名称空间或类中对异常进行分组 , 并根据类型对它们进行分类 。
C ++中的异常处理:
1.下面是一个简单的示例 , 以显示C ++中的异常处理 。 程序的输出说明了try / catch块的执行流程 。
输出:
Before try
Inside try
Exception Caught
After catch (Will be executed)
2.有一个特殊的catch块 , 称为“ catch all” catch(…) , 可用于捕获所有类型的异常 。 例如 , 在下面的程序中 , 将引发int作为异常 , 但是没有用于int的catch块 , 因此将执行catch(…)块 。
输出:
Default Exception
3.原始类型不会发生隐式类型转换 。 例如 , 在以下程序中 , “ a”未隐式转换为int
输出:
Default Exception
4.如果引发异常且未在任何地方捕获异常 , 则程序异常终止 。 例如 , 在下面的程序中 , 抛出了一个char , 但是没有catch块来捕获char 。
输出:
抛出“ char”实例后调用
终止
方法 。 此应用程序已请求运行时以一种异常方式终止它 。 请与应用程序的支持团队联系以获取
更多信息 。
我们可以通过编写自己的意外函数来更改此异常终止行为 。
5.派生类异常应在基类异常之前捕获 。 请参阅此以获取更多详细信息 。
6.与Java一样 , C ++库也有一个标准异常类 , 它是所有标准异常的基类 。 标准库的组件抛出的所有对象都派生自此类 。 因此 , 通过捕获此类型可以捕获所有标准异常
- 万微科技2016|必读的编程书:用Python玩转数据科学编程
- 梁开心|指针编程方法,西门子S7-200SMART
- 编程|C++从入门到精通的最佳方法
- 伯乐在线|程序员提高编程能力万无一失的办法
- 硬派偏执狂|104键全键可编程,迪摩F2女妖机械键盘,玩转你的色彩
- C++|解说:C/C++学习,C++函数模板(泛型编程)
- 华为|华为又一成果,谁也没想到,国产编程语言来得如此之快
- 编程|应不应该以C语言作为我编程的开始
- 编程|面向对象编程的时代会不会走到尽头?它的问题是什么?
- c语言|关于C编程语言,几乎没有人知道的事