处理 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;
}
上述代码的输出将是:
相关文章
Arduino 复位
发布时间:2024/03/13 浏览次数:315 分类:C++
-
可以通过使用复位按钮,Softwarereset 库和 Adafruit SleepyDog 库来复位 Arduino。
Arduino 的字符转换为整型
发布时间:2024/03/13 浏览次数:181 分类:C++
-
可以使用简单的方法 toInt()函数和 Serial.parseInt()函数将 char 转换为 int。
Arduino 串口打印多个变量
发布时间:2024/03/13 浏览次数:381 分类:C++
-
可以使用 Serial.print()和 Serial.println()函数在串口监视器上显示变量值。