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;
}
相关推荐
jimy11 分钟前
C++ 类成员函数的内联定义(inline)详解
开发语言·c++
sanqima21 分钟前
CreateThread、_beginthreadex、AfxBeginThread三种线程创建的区别与联系
c++·tls·线程创建
sanqima27 分钟前
依赖TLS和模块状态的MFC类
c++·mfc·tls·module state
All for pursuit.35 分钟前
【动态规划-11】279.完全平方数
数据结构·c++·算法·leetcode·动态规划
瑶山1 小时前
Windows + WSL2 Ubuntu + VS Code配置C++开发环境
开发语言·c++·windows·vscode·wsl
小米里的大麦1 小时前
19 C、C++ 操作 MySQL
c语言·c++·mysql
有毒的教程2 小时前
Dev-C++ 使用扩展库两种方式:DevPak一键安装 / 手动配置(重点)
android·c++·adb
纪念 2292 小时前
c++ string(二)
开发语言·c++
sanqima2 小时前
MFC里的线程本地存储(TLS)与模块状态(Module State)
c++·mfc·tls·module state
见叶之秋2 小时前
【C++】从基类到派生类:关于C++继承的务实梳理
开发语言·c++