C++ 中抛出超出范围的异常
在 C++ 中,我们可以使用 try-catch 块来处理异常。 我们还可以使用 throw 语句显式抛出异常。
本文讨论如何在 C++ 中抛出超出范围的异常。
C++ 中抛出超出范围的异常
要在 C++ 中抛出超出范围的异常,您可以创建一个异常对象。 为此,您可以使用 out_of_range()
构造函数。
out_of_range()
构造函数在标准 C++ 库中定义。 它采用字符串对象作为其输入参数并返回超出范围的异常。
您可以使用 throw 语句引发异常,如以下示例所示。
#include <iostream>
int main() {
int number= 100;
if (number>50){
throw std::out_of_range("I am an exception.");}
return 0;
}
输出:
terminate called after throwing an instance of 'std::out_of_range'
what(): I am an exception.
Aborted
在这里,我们首先创建了一个名为 number 的变量。 然后,我们检查数字中的值是否大于 50。
如果是,我们就抛出了标准 C++ 库中定义的超出范围的异常。
您还可以使用 try-catch 块处理超出范围的异常。 我们将在 try 块中抛出异常。
我们将捕获超出范围的异常并打印我们已经在 catch 块中处理了异常。 您可以在以下示例中观察到这一点。
#include <iostream>
int main() {
int number= 100;
try{
if (number>50){
throw std::out_of_range("I am an exception.");
}
}
catch(std::out_of_range){
std::cout << "I am here. Exception caught and handled.";
}
return 0;
}
输出:
I am here. Exception caught and handled.
上面的输出表明程序在处理超出范围的异常后已正常终止。 另一方面,之前的程序因为我们没有处理异常而被中止。
在 C++ 中抛出超出范围异常时出错
有时可以在 C++ 中编写一个程序来抛出超出范围的异常,如下所示。
#include <iostream>
int main() {
int number= 100;
try{
if (number>50){
throw std::out_of_range;
}
}
catch(std::out_of_range){
std::cout << "I am here. Exception caught and handled.";
}
return 0;
}
当我们运行上面的代码时,程序将遇到错误,并显示以下执行跟踪。
/tmp/EG06BKsTcd.cpp: In function 'int main()':
/tmp/EG06BKsTcd.cpp:8:36: error: expected primary-expression before ';' token
8 | throw std::out_of_range;
| ^
发生错误是因为我们抛出了 std::out_of_range
而不是超出范围的异常对象。 std::out_of_range
构造函数是用于创建超出范围异常的类型定义。
因此,您不能使用 throw 语句抛出它。 要在 C++ 中抛出超出范围的异常,必须通过将字符串作为输入参数传递给 std::out_of_range()
构造函数来创建超出范围的异常; 只有这样你才能在C++中成功抛出超出范围的异常。
相关文章
在 C++ 中抛出异常消息
发布时间:2023/08/21 浏览次数:192 分类:C++
-
它是通过在程序中可能出现问题的地方抛出异常来执行的。 C++ 中有几个异常处理关键字,但本文将介绍如何使用可变消息引发异常。使用标准 C++ 异常抛出带有消息的异常 - 无效参数
C++ 中的 A Declaration Shadows a Parameter 错误
发布时间:2023/08/21 浏览次数:188 分类:C++
-
每个对象或变量总是有一些边界、范围或作用域来访问其他类成员,例如由 C++ 中的访问说明符定义为 public、private 或 protected 的数据成员或成员函数。当我们在程序的特定范围或块中多次定义
C++ 中的错误 Error ID Returned 1 Exit Status
发布时间:2023/08/21 浏览次数:130 分类:C++
-
C++ [Error]: Id returned 1 exit status 不是常见错误。 这通常意味着程序崩溃了,并且在不查看堆栈跟踪的情况下很难确定原因。
C++ 中错误 Too Many Arguments to Function
发布时间:2023/08/21 浏览次数:177 分类:C++
-
我们在编写一段代码时会遇到很多错误。 解决错误是编程中最关键的部分之一。本文将讨论我们在 C++ 中遇到的一个错误:Too Many Arguments to Function。
处理 C++ 中的错误
发布时间:2023/08/21 浏览次数:197 分类:C++
-
本文讨论了 C++ 中的错误和异常处理。C++ 中的错误处理 C++ 程序中可能存在多种类型的错误。 有些错误需要向用户发出提示。
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 的类,其中包含函数