C ++中的异常处理,请您签收

晓晓 132 0

搬瓦工官网(国内无法打开,需要梯子)https://bandwagonhost.com
搬瓦工官网中国镜像站https://bwh81.net(搬瓦工官方网站,放心访问)
搬瓦工官方中文网https://bwh86.net
搬瓦工官网所有方案以及库存监控页面https://bwh86.net/monitor
最新搬瓦工最大优惠力度优惠码(循环优惠6.58%):BWHNCXNVXV
搬瓦工新用户注册和图文购买教程点击查看

与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:

输出:

terminate called after throwing an instance of 'char' This application has requested the Runtime to terminate it in an unusual way. Please contact the application's support team for more information.

我们可以通过编写自己的意外函数来更改此异常终止行为。

5.派生类异常应在基类异常之前捕获。

6.与Java一样,C ++库也有一个标准异常类,它是所有标准异常的基类。标准库的组件抛出的所有对象都派生自此类。因此,通过捕获此类型可以捕获所有标准异常

7.与Java不同,在C ++中,所有异常均未选中。编译器不会检查是否捕获到异常。例如,在C ++中,没有必要在函数声明中指定所有未捕获的异常。例如,以下程序可以很好地进行编译,但理想情况下fun()的签名应列出未检查的异常。

输出:

Caught exception from fun()

编写上述代码的更好方法:

输出:

Caught exception from fun()

8.在C ++中,try-catch块可以嵌套。另外,可以使用“ throw; throw; throw”来重新抛出异常。:

输出:

Handle Partially Handle remaining

一个函数也可以使用相同的“ throw; throw”来重新抛出一个函数。”。一个函数可以处理一部分,并且可以要求调用方处理剩余部分

9.引发异常时,在将控件转移到catch块之前,将在try块内部创建的所有对象。

输出:

Constructor of Test Destructor of Test Caught 10

免费领取C/C++资料与教程,以及学习更多有关编程知识,请查看下方图片:

搬瓦工机房方案整理

搬瓦工目前提供了4个方案,包括搬瓦工KVM方案搬瓦工CN2 GT方案搬瓦工CN2 GIA-E方案搬瓦工香港方案,每种方案有多种套餐配置,详细的配置和价格整理如下:
套餐名称 CPU 内存大小 硬盘容量 每月流量 带宽 价格/年 购买链接
搬瓦工CN2-E限量版(搬瓦工补货通知群(禁言,仅推送):903230558)
CN2 GIA LIMITED EDITION 1核 1 GB 10 GB 500 GB 1 Gbps $89.99 立即购买
搬瓦工CN2 GT方案
CN2 1核 1024 MB 20 GB 1000 GB 1 Gbps $49.99 立即购买
CN2 1核 2048 MB 40 GB 2000 GB 1 Gbps $99.99 立即购买
CN2 2核 4096 MB 80 GB 3000 GB 1 Gbps $199.99 立即购买
CN2 2核 8 GB 160 GB 5000 GB 1 Gbps $399.99 立即购买
CN2 3核 16 GB 320 GB 8000 GB 1 Gbps $799.99 立即购买
CN2大流量 3核 16 GB 320 GB 12000 GB 1 Gbps $899.99 立即购买
CN2大流量 3核 16 GB 320 GB 16000 GB 1 Gbps $1299.99 立即购买
搬瓦工CN2 GIA-E方案(可选搬瓦工DC9 CN2 GIA,搬瓦工DC6 CN2 GIA,搬瓦工日本大阪软银线路)
CN2 GIA ECOMMERCE 2核 1 GB 20 GB 1000 GB 2.5 Gbps $169.99 立即购买
CN2 GIA ECOMMERCE 3核 2 GB 40 GB 2000 GB 2.5 Gbps $299.99 立即购买
CN2 GIA ECOMMERCE 4核 4 GB 80 GB 3000 GB 2.5 Gbps $549.99 立即购买
CN2 GIA ECOMMERCE 6核 8 GB 160 GB 5000 GB 5 Gbps $879.99 立即购买
CN2 GIA ECOMMERCE 8核 16 GB 320 GB 8000 GB 5 Gbps $1599.99 立即购买
CN2 GIA ECOMMERCE 10核 32 GB 640 GB 10000 GB 10 Gbps $2759.99 立即购买
CN2 GIA ECOMMERCE 12核 64 GB 1280 GB 12000 GB 10 Gbps $5399.99 立即购买
搬瓦工香港方案
香港CN2 GIA 2核 2048 MB 40 GB 500 GB 1 Gbps $899.99 立即购买
香港CN2 GIA 4核 4096 MB 80 GB 1000 GB 1 Gbps $1559.99 立即购买
香港CN2 GIA 6核 8192 MB 160 GB 2000 GB 1 Gbps $2999.99 立即购买
香港CN2 GIA 6核 16384 MB 320 GB 4000 GB 1 Gbps $5899.99 立即购买
搬瓦工日本方案
日本CN2 GIA 2核 2048 MB 40 GB 500 GB 1.2 Gbps $899.99 立即购买
日本CN2 GIA 4核 4096 MB 80 GB 1000 GB 1.2 Gbps $1559.99 立即购买
日本CN2 GIA 6核 8192 MB 160 GB 2000 GB 1.2 Gbps $2999.99 立即购买
日本CN2 GIA 6核 16384 MB 320 GB 4000 GB 1.2 Gbps $5899.99 立即购买
搬瓦工KVM方案
KVM 2核 1024 MB 20 GB 1 TB 1 Gbps $49.99 立即购买
KVM 3核 2 GB 40 GB 2 TB 1 Gbps $99.99 立即购买
KVM 4核 4 GB 80 GB 3 TB 1 Gbps $199.99 立即购买
KVM 5核 8 GB 160 GB 4 TB 1 Gbps $399.99 立即购买
KVM 6核 16 GB 320 GB 5 TB 1 Gbps $799.99 立即购买
KVM 7核 24 GB 480GB 6 TB 1 Gbps $1,199.99 立即购买

标签: 国外云服务器 香港服务器 美国服务器 搬瓦工VPS

发表评论 (已有0条评论)

还木有评论哦,快来抢沙发吧~