迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 编程语言 > C++ >

处理 C++ 中的错误

作者:迹忆客 最近更新:2023/08/20 浏览次数:

本文讨论了 C++ 中的错误和异常处理。


C++ 中的错误处理

C++ 程序中可能存在多种类型的错误。 有些错误需要向用户发出提示。

您必须向用户提供正确的错误消息并退出程序。

对于处理错误,可以采用多种不同的方法。 其中一些是:

  1. 向用户提供一些硬编码的错误消息。
  2. 在某些变量中保存一些预期的错误消息并显示这些变量。
  3. 进行异常处理。

第一种给出一些硬编码错误消息的方法非常简单。 只要代码中可能出现错误,就显示一些错误消息并退出代码。

例如,如果登录或密码输入无效,您可以显示如下消息:

cout<< "You have entered an incorrect username or password"<<endl;
cout<<"Try again!"<<endl;

第二种方法是为可能的错误消息创建一些字符串,并在需要的地方显示这些变量。

const string INVALID_LOGIN_ERROR_MESSAGE = "Invalid Username or Password";
//later in the code
cout<<INVALID_LOGIN_ERROR_MESSAGE <<endl;

此类类型的字符串可以在单独的头文件(如 ErrorMessages.h)中声明,并将该头文件包含在主文件中。 这种字符串文字的优点是防止代码重复。

每当您想要更改错误消息时,都需要在一处(即声明部分)进行更改。


C++ 中的异常处理

即使拥有专业的编程技能,一些运行时错误也无法避免。 这些都是异常,我们对此类错误进行异常处理。

例如,我们可能会尝试从机器上访问一些不可用的内存,或者 API 用户可能会向函数传递非法参数。 此类错误是使用异常处理来处理的。

为了在程序中使用异常处理,我们将需要出现错误的代码块包含在 try 块中。 因此,每当出现异常时,控制就会自动转移到关联的 catch 块,该块在终止程序之前显示一些有意义的错误消息。

考虑下面的例子。

#include <iostream>
using namespace std;

int main () {
    int n1=2, n2=0;
    try{
        if (n2 !=0)
            cout<<"Division: "<<n1/n2<<endl;
        else
            throw 0;
    }
  catch (int e){
    cout << "Divide by zero exception " << endl;
  }
  return 0;
}

上述代码的输出将是:

C++ 中的异常处理

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

C++ 中错误 Function Returns the Address of a Local Variable

发布时间:2023/08/21 浏览次数:119 分类:C++

根据作用域,C 和 C++ 中的变量分为局部变量和全局变量。 虽然可以从程序的任何部分访问全局变量,但局部变量却不然。让我们讨论一下为什么会出现这个错误以及如何修复它。

C++ 错误 Invalid Conversion of Int* to Int

发布时间:2023/08/21 浏览次数:154 分类:C++

这个简短的教程将讨论错误消息 Invalid conversation of int* to int 。 首先,让我们回顾一下 C++ 中的指针。

C++ 中的错误 Solved: Expression Must Have Class Type

发布时间:2023/08/21 浏览次数:62 分类:C++

让我们看看为什么会发生这种情况以及如何解决。C++ 中错误 Solved: Expression Must Have Class Type 为了更好地理解问题陈述,请查看下面的代码。 在这里,我们有一个名为 Deserts 的类,其中包含函数

C++ 迷宫求解器

发布时间:2023/08/20 浏览次数:150 分类:C++

迷宫求解算法是计算机科学和人工智能中的经典问题。C++ 迷宫求解器 迷宫求解算法旨在通过仅在四个罗盘方向上移动来找到从起点到终点的最短路径。

C++ 的包管理器

发布时间:2023/08/20 浏览次数:93 分类:C++

复杂的软件在其系统中需要大量的依赖项。 像 Python 这样的编译语言有 pip 来管理它们的包,但我们很少听到 C/C++ 的包管理器。本文介绍如何安装和实现 C++ 的包管理器。VC Package (vcpkg) - C++ 的包

C++ 中的取消引用指针

发布时间:2023/08/20 浏览次数:139 分类:C++

本文简要讨论 C++ 中取消引用指针。在进入我们的实际主题之前,我们首先需要了解指针是什么以及为什么 C++ 程序员需要它。

C++ 中 *& 和 **& 的功能和区别

发布时间:2023/08/20 浏览次数:194 分类:C++

本文解释了 C++ 中 *& 和 **& 的区别和功能。 要理解这些符号,需要熟悉C++中指针的概念。C++ 中 *& 和 **& 的功能和区别

C++ 中的空指针

发布时间:2023/08/20 浏览次数:181 分类:C++

本文将讨论 C++ 中 void* 指针的使用。 还提供了示例代码来演示其实现。在 C++ 中实现 void* 指针 我们已经研究过,指针应该与它所指向的数据类型相同,如指针声明中所指定的那样。

在 C++ 中使用指针交换两个数字

发布时间:2023/08/20 浏览次数:130 分类:C++

指针是 C++ 编程语言中的一个基本概念。 它们用于访问和操作计算机的内存。它们可以指向任何数据类型,包括数组、结构或函数。 指针是 C++ 中最强大的工具之一,因为它们允许程序员在运行

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便