编程语言之C ++中的异常处理

晓晓 117 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。

输出:

抛出“ char”实例后调用 终止 方法。此应用程序已请求运行时以一种异常方式终止它。请与应用程序的支持团队联系以获取 更多信息。

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

5.派生类异常应在基类异常之前捕获。请参阅此以获取更多详细信息。

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

7.与Java不同,在C ++中,所有异常均未选中。编译器不会检查是否捕获到异常(有关详细信息,请参见此内容)。例如,在C ++中,没有必要在函数声明中指定所有未捕获的异常。尽管建议这样做。例如,以下程序可以正常编译,但理想情况下fun()的签名应列出未检查的异常。

输出:

从fun()捕获异常

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

输出:

从fun()捕获异常

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

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

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

10.您可以尝试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条评论)

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