// 编写一个C++ 程序,读取一个文件的内容并打印到控制台。 在文件读取过程中处理以下异常情况: 1)如果文件打开失败,则抛出一个自定义的异常对象 FileOpenException。 2)如果文件读取过程中发生错误,则抛出一个自定义的异常对象 FileReadException。 // 【要求】在 main 函数中调用文件读取函数,并捕获并处理可能抛出的异常。 #include using namespace std; // 自定义异常类 class FileOpenException : public exception { public: const char *what() const throw() { return "文件打开异常"; } }; class FileReadException : public exception { public: const char *what() const throw() { return "文件读取异常"; } }; int main() { FILE *fp = fopen("test.txt", "r"); try { if (fp == NULL) { throw FileOpenException(); // 抛出自定义文件打开异常 } } catch (exception &e) { cout << "捕获异常: " << e.what() << endl; } char ch; try { // EOF 表示到达文件结尾 if (fscanf(fp, "%c", &ch) == EOF) throw FileReadException(); // 抛出自定义文件读取异常 } catch (exception &e) { cout << "捕获异常: " << e.what() << endl; } fclose(fp); return 0; }