c++流的异常捕获

在 C++ 中,当使用流(如 std::ifstreamstd::ofstream)时,常见的异常可以使用以下类型的异常捕获:

  1. std::ios_base::failure
    • 用于捕获与流操作相关的错误,例如打开文件失败、读写错误等。
  2. std::exception
    • 作为基类,可以捕获所有标准异常,适合处理未具体指定的流错误。
c++ 复制代码
#include <iostream>
#include <fstream>
#include <exception>

int main() {
    try {
        std::ifstream file("nonexistent.txt");
        if (!file) {
            throw std::ios_base::failure("Failed to open file");
        }
        // 进行读操作
    } catch (const std::ios_base::failure& e) {
        std::cerr << "Stream error: " << e.what() << std::endl;
    } catch (const std::exception& e) {
        std::cerr << "General exception: " << e.what() << std::endl;
    }
    return 0;
}
相关推荐
月夜的风吹雨10 小时前
【封装红黑树】:深度解析map和set的底层实现
c++·set·map·封装
列逍10 小时前
深入理解 C++ 智能指针:原理、使用与避坑指南
开发语言·c++
C语言小火车11 小时前
C/C++ 指针全面解析:从基础到进阶的终极指南
c语言·开发语言·c++·指针
wefg111 小时前
【C++】特殊类设计
开发语言·c++
帅中的小灰灰12 小时前
C++编程原型设计模式
开发语言·c++
凌康ACG12 小时前
Sciter窗口间状态事件交互(四)
c++·sciter
“αβ”12 小时前
MySQL库的操作
linux·服务器·网络·数据库·c++·mysql·oracle
月夜的风吹雨13 小时前
【 C++哈希容器】:unordered_map与unordered_set深度解析
c++·哈希算法·unordered_map·unordered_set
你的冰西瓜14 小时前
C++14 新特性详解:相较于 C++11 的主要改进
开发语言·c++·stl
无限进步_14 小时前
C语言单向链表实现详解:从基础操作到完整测试
c语言·开发语言·数据结构·c++·算法·链表·visual studio