C++ 多个 Catch 语句

2024 年 8 月 28 日 | 3 分钟阅读

创建可靠软件的一个基本组成部分是 异常处理。它使我们能够有礼貌地应对程序运行期间可能发生的意外情况。由于 C++ 强大的异常处理框架,开发人员可以精确地处理各种异常类型。在本文中,我们将讨论 C++ 中多个 catch 语句 的概念,以及它们如何用于管理各种不常见情况的示例。

C++ try、catchthrow 关键字用于处理异常。当 try 块内出现异常情况时,会运行一个类似的 catch 块来处理异常。throw 关键字 用于引发异常,catch 块用于指示应如何处理某些异常。

多个 Catch 块的需求

程序可能经常遇到各种异常类型,每种类型都需要不同的响应。在这里,拥有多个 catch 块非常有用。我们可以拥有多个 catch 块,每个块都旨在处理特定的异常类型,而不是使用单个 catch 块来处理所有异常。

语法

它具有以下语法:

示例 1

处理除零和无效输入

让我们看一个简单的情况,其中我们除以两个数字,但我们还需要处理两种不同的异常:除零无效输入

输出

Enter dividend: 10
Enter divisor: 0
Error: Division by zero is not allowed.

Enter dividend: 10
Enter divisor: a
Unknown exception occurred.

说明

在此示例中,我们使用两个 catch 块:一个用于处理 const char* 类型 的异常(用于除零),另一个用于处理所有其他异常(用于不正确的输入)。

示例 2

自定义异常类处理

通过从 std::exception 类 继承,可以在 C++ 中创建自定义异常类。让我们开发一个特殊的异常类型,并展示如何除了常见异常外还处理它。

输出

Custom Exception: Something went wrong.

说明

在此示例中,我们有两个 catch 块,一个用于唯一的异常 MyException,另一个用于常见的异常 std::exception

结论

在 C++ 中,多个 catch 语句 提供了一种有效的方法来精确处理各种异常类型。通过组织 catch 块以匹配特定的异常类型,我们可以确保程序有效地响应各种不寻常的事件,从而提高程序的可靠性和可维护性。每个 C++ 程序员都应该能够理解和使用多个 catch 块,因为这样做将有助于他们创建更健壮、更容错的程序。