行业知识
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服务器怎么装驱动精灵?