c++ - 在 Linux 上的 C++ 无限循环中捕获内存不足的错误 bad_alloc()

标签 c++ linux exception infinite-loop bad-alloc

所以我有一个无限循环,里面有一个 fstream,看起来或多或少像这样:

int main(){
    while(1){
    StringData() 
    //above is a function with fstream that writes data into a new file    
    return 0;
}

CSV 文件写在 U 盘上。我想预见程序会超出 USB 内存棒的存储容量并捕获将要发生的错误。

我在某处读到它会抛出 bad_alloc() ,我的想法是添加 try()catch() for 循环并在错误出现时完全退出程序。

我什至不确定它是否就是会出现的确切错误。有人可以帮我解决异常吗?

谢谢你,祝你玩得开心!

最佳答案

在这种情况下,USB 内存棒被视为磁盘,因此会因空间不足错误而不是内存而失败。

fstream 将在无法向磁盘写入更多内容时抛出 std::ifstream::failure。 (由异常掩码控制)。

关于c++ - 在 Linux 上的 C++ 无限循环中捕获内存不足的错误 bad_alloc(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47551534/

相关文章:

java - Map 和 Hashtable 的 ConcurrentModification 异常

c++ - 将 inline 关键字与模板一起使用是否有意义?

c++ - g++ 不再查找标准库 OSX 10.6.8

android - 依赖问题 : DexArchiveMergerException

c - 如何使用 xlib 获取现有窗口的显示结构

linux - Plone 统一安装程序缺少 Python

Java:如何保持循环来修复异常?

c++ - 错误时会发生什么 - Bison

c++ - opencv vs 2010 依赖问题

linux - 我如何在 Linux 中设置权限,以便两个用户可以更新服务器上的同一个 SVN 工作副本?