C++ 程序演示运行时异常

2025年2月9日 | 阅读 4 分钟

在此示例中,我们将讨论一个 C++ 程序来演示运行时异常。但在讨论运行时异常的实现之前,我们必须了解 C++ 中的异常或异常处理。

C++ 中的异常

C++ 中的异常是指程序运行时发生的问题。程序可以抛出异常,这表明当出现问题时已识别出错误情况。具体来说,运行时异常是指程序运行时发生的异常,而不是编译器发现的编译时错误。

C++ 异常处理

程序员可以使用 C++ 中内置的异常处理功能优雅地管理运行时故障。在 C++ 中,处理异常需要三个主要关键字:

try:-

  • 允许**异常**发生的**代码段**。
  • 在 try 块中的代码中检测到异常。

throw:-

  • **显式抛出**异常时应用。
  • 程序在检测到问题时可以抛出特定类型的异常对象。

catch:-

  • catch 是用于**管理异常**的代码块。
  • 如果在 try 块中出现异常,则会触发匹配的 catch 块。

演示 C++ 运行时异常的示例程序

1. 除以零异常

输出

C++ Program to Show Runtime Exceptions

说明

此程序的目标是将整数除以零。因此,将数字除以零在数学上是无法计算的。如果我们尝试计算,它将抛出运行时异常。这里,try-catch 块用于捕获异常。

2. 数组越界异常

输出

C++ Program to Show Runtime Exceptions

说明

在上面的程序中,我们尝试从超出边界索引的向量中访问元素。如果要访问的元素的索引超出边界值,则使用 at() 方法,它将引发 std::out_of_range 异常。应该使用 try-catch 块来捕获异常。

3. 空指针异常

输出

C++ Program to Show Runtime Exceptions

说明

在此程序中,我们尝试解引用空指针 (ptr)。解引用空指针时通常会引发运行时异常,这会导致未定义的行为。使用 try-catch 块,我们通过打印错误消息来管理此异常。

4. 文件 I/O 异常

输出

C++ Program to Show Runtime Exceptions

说明

在此程序中,我们尝试打开无效文件。如果我们尝试打开不存在的文件,将发生运行时异常。使用 try-catch 块,我们通过打印错误消息来管理此异常。

5. 向量迭代器异常

输出

C++ Program to Show Runtime Exceptions

说明

在此程序中,我们使用迭代器尝试遍历向量。但是我们错误地在循环条件中递增了 end 迭代器,这可能导致未定义的行为和运行时异常。程序会捕获任何源自 std::exception 的异常,并输出错误消息。

6. 字符串索引越界异常

输出

C++ Program to Show Runtime Exceptions

说明

此程序使用“Hello, World!”初始化字符串 str。之后,我们尝试使用 at() 方法访问索引 20 处的值。因此,如果字符串长度小于 20,这将导致 std::out_of_range 错误。