c std::bad-ag捕鱼王app官网

c std::bad_alloc 异常

作者:迹忆客 最近更新:2023/08/22 浏览次数:

这篇短文讨论了 c 中 std::bad_alloc() 异常的主要原因。 它还讨论了使用 c 异常处理顺利处理此运行时异常的方法。


c 中的异常处理

所有异常均源自 std::exception 类。 这是一个可以修复的运行时错误。

如果我们不处理异常,程序将打印一条失败消息并终止。 借助异常,执行控制可以从程序的一个部分转移到另一部分。

c 使用try、catch、throw这三个关键字来处理异常。

关键词 说明
throw 我们使用 throw 关键字抛出异常,并定义在代码的一部分可能导致问题时可能出现的异常类型。
try 可以产生错误并且必须抛出异常的代码段包含在try 块中。
catch 引发异常时调用的块称为 catch 块。 如有必要,我们可以通过编程方式停止应用程序,并通知用户该代码块中的错误。

c 中的 std::bad_alloc 异常

每当我们尝试使用 new 关键字创建对象时,编译器都会请求堆上的内存。 如果堆上没有所需的内存量,则会引发异常,称为 std::bad_alloc 异常。

如果使用 new 关键字或动态数组声明单个对象,如果所需的内存不可用,则会在运行时抛出异常。

让我们看一下下面的示例来处理 bad_alloc 异常。

示例代码:

#include 
#include 
int main () {
  try
  {
    int* newarr= new int[2000000000];
  }
  catch (std::bad_alloc& all)
  {
    std::cerr << "bad_alloc exception occurred: " << all.what() << '\n';
  }
  return 0;
}

输出:

bad_alloc exception occurred: std::bad_alloc

如果我们不将此代码包含在 try-catch 块中,这可能会导致我们的程序崩溃。 为了避免这种情况,我们应该始终处理这个异常,以便通过通知用户错误来正常终止程序。

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

arduino 中停止循环

发布时间:2024/03/13 浏览次数:444 分类:c

可以使用 exit(0),无限循环和 sleep_n0m1 库在 arduino 中停止循环。

arduino 复位

发布时间:2024/03/13 浏览次数:315 分类:c

可以通过使用复位按钮,softwarereset 库和 adafruit sleepydog 库来复位 arduino。

发布时间:2024/03/13 浏览次数:181 分类:c

可以使用简单的方法 toint()函数和 serial.parseint()函数将 char 转换为 int。

arduino 串口打印多个变量

发布时间:2024/03/13 浏览次数:381 分类:c

可以使用 serial.print()和 serial.println()函数在串口监视器上显示变量值。

arduino if 语句

发布时间:2024/03/13 浏览次数:123 分类:c

可以使用 if 语句检查 arduino 中的不同条件。

arduino icsp

发布时间:2024/03/13 浏览次数:214 分类:c

icsp 引脚用于两个 arduino 之间的通信以及对 arduino 引导加载程序进行编程。

发布时间:2024/03/13 浏览次数:151 分类:c

可以使用 arduino 中的循环制作计数器。

使用 c 编程 arduino

发布时间:2024/03/13 浏览次数:127 分类:c

本教程将讨论使用 arduino ide 在 c 中对 arduino 进行编程。

arduino 中的子程序

发布时间:2024/03/13 浏览次数:168 分类:c

可以通过在 arduino 中声明函数来处理子程序。

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便
网站地图