c++流的异常捕获

在 C++ 中,当使用流(如 std::ifstream 或 std::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;
}
相关推荐
凉茶钱1 小时前
红黑树:用“颜色”换“平衡”,set 与 map 的底层发动机
开发语言·c++·红黑树
octopus_c2 小时前
C++ 模板详解:函数模板、类模板、特化与分离编译
开发语言·c++·算法
東隅已逝,桑榆非晚2 小时前
算法1. 双指针法-移动零
c++·算法
悠仁さん4 小时前
【C++】set map 使用
java·前端·c++
艾莉丝努力练剑4 小时前
【AI大模型接入SDK】ChatServer问题修复
c++·学习·ai·大模型·sdk
扶尔魔ocy5 小时前
【QT C++】常用设计模式
c++·设计模式
晚风予卿云月5 小时前
【C++高并发内存池】 2.ThreadCache设计
开发语言·c++·高并发内存池·tcmalloc
東隅已逝,桑榆非晚5 小时前
红黑树:从概念到实现
数据结构·c++·笔记·学习
艾莉丝努力练剑6 小时前
【AI大模型接入SDK】ChatServer接口测试
网络·c++·人工智能·学习·ai·大模型·sdk
D e re k ZH6 小时前
C++ 模板与泛型编程进阶(No 2)
开发语言·c++