卓越飞翔博客卓越飞翔博客

卓越飞翔 - 您值得收藏的技术分享站
技术文章77117本站已运行4326

C++ 中如何处理函数中的异常情况?

c++++ 中处理函数异常情况的方法包括:1. try-catch 语句块,可捕捉异常并执行后续代码;2. 异常规范,允许指定函数可能引发的异常类型;3. noexcept 关键字,声明函数不引发异常。

C++ 中如何处理函数中的异常情况?

C++ 中处理函数中异常情况

在编写 C++ 程序时,处理函数中的异常情况至关重要,以确保程序在意外事件发生时能够优雅地恢复。C++ 提供了几种内置机制来处理异常:

1. try-catch 语句块

立即学习“C++免费学习笔记(深入)”;

点击下载“修复打印机驱动工具”;

try-catch 语句块是最常用的异常处理机制。其语法如下:

try {
  // 可能引发异常的代码
} catch (const std::exception& e) {
  // 处理异常
}

当 try 块中的代码引发异常时,会立即跳转到 catch 块,其中包含处理异常的代码。

2. 异常规范

异常规范是一种编译时异常处理机制。它允许指定函数可能引发的异常类型。其语法如下:

int divide(int a, int b) throw(std::invalid_argument);

在上面的例子中,divide 函数声明可能会引发 std::invalid_argument 异常。如果从函数中引发了未指定的异常类型,则会终止程序。

3. noexcept 关键字

noexcept 关键字可用于指定函数不引发异常。其语法如下:

int safe_function() noexcept;

如果 safe_function 函数确实引发了异常,则会终止程序。

实战案例

考虑以下代码片段:

int divide(int a, int b) {
  if (b == 0) {
    throw std::invalid_argument("除数不能为零");
  }
  return a / b;
}

此函数可以用来计算两个数的商。如果除数为零,它会引发 std::invalid_argument 异常。让我们看看如何使用 try-catch 块处理这个异常:

int main() {
  try {
    int a = 10;
    int b = 0;
    int result = divide(a, b);
  } catch (const std::invalid_argument& e) {
    std::cout << "错误: " << e.what() << std::endl;
  }
  return 0;
}

在这个例子中,如果 divide 函数引发异常,它会被 catch 块捕获,并在控制台中打印错误消息。

卓越飞翔博客
上一篇: C++ 函数优化与调试的艺术:从菜鸟到高手
下一篇: 返回列表
留言与评论(共有 0 条评论)
   
验证码:
隐藏边栏