小工具知识网

当前位置: 首页 > 行业知识 > c++异常机制(6) -- 标准库中的异常类

行业知识

c++异常机制(6) -- 标准库中的异常类

2026-10-30 06:30:43 来源:互联网转载
标准程序库异常

如���可以,建议使用标准异常库中的类处理异常。因为毕竟是标准,更加规范。

 

 

 

 

我们使用c++标准库中的异常类,来实现我们之前文件拷贝的代码。 

#include #include #include #include using namespace std;#define BUFFER_SIZE 1024// 将一个文件中的内容拷贝到另外一个文件中去int makeFile(const char* dest, const char* src) {// 定义文件指针FILE* fp1 = NULL, * fp2 = NULL;// 打开文件, 以只读二进制形式打开文件,打开失败返回NULLfp1 = fopen(src, "rb"); // 判断文件是否成功打开if (!fp1) {throw ios_base::failure("源文件打开失败");}// 打开文件,以只写二进制形式打开文件,打开失败返回NULLfp2 = fopen(dest, "wb");// 判断文件是否成功打开if (!fp2) {throw  ios_base::failure("目标文件打开失败");    //  返回错误标记,表示目标文件打开失败}// 进行文件的拷贝char buffer[BUFFER_SIZE];    // 1024字节的缓存int readLen, writeLen;       // 每次读取的长度和写入的长度// 读取的长度大于0,说明有内容可以写入,执行循环体的写入内容while ((readLen = fread(buffer, 1, BUFFER_SIZE, fp1)) > 0) {writeLen = fwrite(buffer, 1, readLen, fp2);// 如果一次写入的长度和读取的长度不等,那么说明写入失败if (readLen != writeLen) {throw  ios_base::failure("文件写入失败");}}// 关闭文件fclose(fp1);fclose(fp2);return 0;  // 一切正常返回0}int makeFile2(const char* dest, const char* src) {int ret;ret = makeFile(dest, src);printf("makeFile2 函数被调用");return ret;}int main(void) {int ret = 0;try {ret = makeFile2("dest.txt", "src.txt");}catch (exception& error) {// what()函数返回错误信息cout 

上一篇:服务器怎么删除硬盘?

下一篇:dell服务器怎么装驱动精灵?