处理 C++ 中的错误
本文讨论了 C++ 中的错误和异常处理。
C++ 中的错误处理
C++ 程序中可能存在多种类型的错误。 有些错误需要向用户发出提示。
您必须向用户提供正确的错误消息并退出程序。
对于处理错误,可以采用多种不同的方法。 其中一些是:
- 向用户提供一些硬编码的错误消息。
- 在某些变量中保存一些预期的错误消息并显示这些变量。
- 进行异常处理。
第一种给出一些硬编码错误消息的方法非常简单。 只要代码中可能出现错误,就显示一些错误消息并退出代码。
例如,如果登录或密码输入无效,您可以显示如下消息:
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++ 中错误 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 浏览次数:139 分类:C++
-
本文简要讨论 C++ 中取消引用指针。在进入我们的实际主题之前,我们首先需要了解指针是什么以及为什么 C++ 程序员需要它。
C++ 中 *& 和 **& 的功能和区别
发布时间:2023/08/20 浏览次数:194 分类:C++
-
本文解释了 C++ 中 *& 和 **& 的区别和功能。 要理解这些符号,需要熟悉C++中指针的概念。C++ 中 *& 和 **& 的功能和区别
在 C++ 中使用指针交换两个数字
发布时间:2023/08/20 浏览次数:130 分类:C++
-
指针是 C++ 编程语言中的一个基本概念。 它们用于访问和操作计算机的内存。它们可以指向任何数据类型,包括数组、结构或函数。 指针是 C++ 中最强大的工具之一,因为它们允许程序员在运行