C++ 异常处理学习笔记

C++ 异常处理是一种技术,使程序可以在运行时检测到错误并采取适当的措施来处理它们。在 C++ 中,异常处理主要是通过 try-catch 块实现的。

何时使用 C++ 异常处理

C++ 异常处理通常用于以下情况:

  • 函数中的错误(例如除以零)。
  • 动态分配内存失败。
  • 文件无法打开或读取。
  • 不允许的用户输入。
  • 任何其他错误或意外情况。

使用 try-catch 块

cppCopy Code
try { // 可能会抛出异常的代码块 } catch (ExceptionType1 e1) { // 处理 ExceptionType1 类型的异常 } catch (ExceptionType2 e2) { // 处理 ExceptionType2 类型的异常 } catch (...) { // 处理所有其他类型的异常 }

try 块中包含可能会抛出异常的代码。如果发生异常,则会跳转到最近的匹配 catch 块。如果没有任何 catch 块匹配,则程序终止并显示错误消息。

catch 块包含可以处理特定类型异常的代码。每个 catch 块可以捕获不同类型的异常。可以使用省略号 (...) 来捕获所有其他类型的异常。

以下是一个示例:

cppCopy Code
#include <iostream> using namespace std; int main() { try { int x, y; cout << "Enter two numbers: "; cin >> x >> y; if (y == 0) { throw "Divide by zero error!"; } cout << "Result: " << x / y << endl; } catch (const char* msg) { cerr << "Error: " << msg << endl; } return 0; }

在上面的示例中,如果用户输入了 0 作为第二个数,则会抛出一个字符串异常,并且将错误消息打印到标准错误流中。

总结

C++ 异常处理是一种有效的技术,可以使程序更加健壮和可维护。它允许程序员捕获并处理可能发生的错误或意外情况。要使用异常处理,请使用 try-catch 块,捕获特定类型的异常并处理它们。