// 编写一个C++ 程序，读取一个文件的内容并打印到控制台。 在文件读取过程中处理以下异常情况： 1）如果文件打开失败，则抛出 std::runtime_error 异常类的一个实例，并传递适当的错误消息。 2）如果文件读取过程中发生错误，则抛出 std::ios_base::failure 异常类的一个实例，并传递适当的错误消息。
// 【要求】在 main 函数中调用文件读取函数，并捕获并处理可能抛出的异常。
#include <bits/stdc++.h>

using namespace std;

int main()
{
    FILE *fp = fopen("test.txt", "r");
    try
    {
        if (fp == NULL)
            throw std::runtime_error("文件打开异常");
    }
    catch (const std::runtime_error &e)
    {
        cout << "捕获异常：" << e.what() << endl;
    }

    char ch;
    try
    {
        if (fscanf(fp, "%c", &ch) == EOF)
            throw std::ios_base::failure("文件读取异常");
    }
    catch (const std::ios_base::failure &e)
    {
        cout << "捕获异常：" << e.what() << endl;
    }

    fclose(fp);
    return 0;
}
