C++异常处理
发布时间:2020-12-16 07:42:28 所属栏目:百科 来源:网络整理
导读:今天PHP站长网 52php.cn把收集自互联网的代码分享给大家,仅供参考。 C++异常处理的几种方法 #includecstdioclass BadSrcFile{};class BadDestFile{};class BadCopy{};int myCp(const char* destFile,const char* srcFile
以下代码由PHP站长网 52php.cn收集自互联网 现在PHP站长网小编把它分享给大家,仅供参考 C++异常处理的几种方法#include<cstdio> class BadSrcFile{}; class BadDestFile{}; class BadCopy{}; int myCp(const char* destFile,const char* srcFile) { FILE* inFile; if((inFile=fopen(srcFile,"rb"))==0) { return 1; } FILE* outFile; if((outFile=fopen(destFile,"wb"))==0) { return 2; } char buf[20]; size_t inSize; size_t outSize; while((inSize=fread(buf,sizeof(char),20,inFile))!=0) { outSize=fwrite(buf,inSize,outFile); if(outSize!=inSize) { return 3; } } fclose(inFile); fclose(outFile); return 0; } int myCp2(const char* destFile,"rb"))==0) { // return 1; throw 1; } FILE* outFile; if((outFile=fopen(destFile,"wb"))==0) { // return 2; throw 2; } char buf[20]; size_t inSize; size_t outSize; while((inSize=fread(buf,outFile); if(outSize!=inSize) { // return 3; throw 3; } } fclose(inFile); fclose(outFile); return 0; } void myCp3(const char* destFile,"rb"))==0) { // return 1; throw "打开输入文件时出错!n"; } FILE* outFile; if((outFile=fopen(destFile,"wb"))==0) { // return 2; throw "打开输出文件时出错!n"; } char buf[20]; size_t inSize; size_t outSize; while((inSize=fread(buf,outFile); if(outSize!=inSize) { // return 3; throw "拷贝时出错!n"; } } fclose(inFile); fclose(outFile); } void myCp4(const char* destFile,"rb"))==0) { // return 1; //throw "打开输入文件时出错!n"; throw BadSrcFile(); } FILE* outFile; if((outFile=fopen(destFile,"wb"))==0) { // return 2; // throw "打开输出文件时出错!n"; throw BadDestFile(); } char buf[20]; size_t inSize; size_t outSize; while((inSize=fread(buf,outFile); if(outSize!=inSize) { // return 3; // throw "拷贝时出错!n"; throw BadCopy(); } } fclose(inFile); fclose(outFile); } int main() { int result= myCp("11.txt","1.txt"); int result1; switch(result) { case 0:printf("正常拷贝1!n");break; case 1:printf("打开输入文件时出错1!n");break; case 2:printf("打开输出文件时出错1!n");break; case 3:printf("拷贝时出错1!n");break; default:printf("未知错误1!n");break; } try{ result=myCp2("22.txt","1.txt"); myCp3("33.txt","1.txt"); myCp4("44.txt","1.txt"); } catch(int e){ switch(e) { case 1:printf("打开输入文件时出错2!n");break; case 2:printf("打开输出文件时出错2!n");break; case 3:printf("拷贝时出错2!n");break; default:printf("未知错误2!n");break; } } catch(const char* e) { printf("%sn",e); } catch(BadSrcFile e) { printf("打开输入文件时出错!n"); } catch(BadDestFile e) { printf("打开输出文件时出错!n"); } catch(BadCopy e) { printf("拷贝时出错!n"); } catch(...) { printf("未知错误!n"); } printf("OK!n"); return 0; } 以上内容由PHP站长网【52php.cn】收集整理供大家参考研究 如果以上内容对您有帮助,欢迎收藏、点赞、推荐、分享。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |