异常处理机制
程序员文章站
2024-03-24 23:35:58
...
throw(抛出异常); 异常可以是各种数据类型,
try{ 需要检查有无异常的函数}catch(与抛出的异常数据类型一样的类型来接收异常消息(…)如果使用三个点,表示默认类型){
提示异常的语句 }
#include <stdio.h>
#include <stdlib.h>
#include <string>
using namespace std;
#define BUFSIZE 1024
//实现文件的二进制拷贝
int copyfile2(const char* dest,const char* src) {
FILE* fp1 = NULL, * fp2 = NULL;
//rb 只读方式打开一个二进制文件,只允许读取数据
fopen_s(&fp1, src, "rb");
if (fp1 == NULL) {
throw new string("文件不存在");
}
//wb 以只写的方式打开或新建一个二进制文件,只允许写数据。
fopen_s(&fp2, dest, "wb");
if (fp2 == NULL) {
throw - 2;
}
char buffer[BUFSIZE];
int readlen, writelen;
//如果读到数据,则大于0
while ((readlen = fread(buffer, 1, BUFSIZE, fp1)) > 0) {
writelen = fwrite(buffer, 1, readlen, fp2);
if (readlen != writelen) {
throw - 3;
}
}
fclose(fp1);
fclose(fp2);
return 0;
}
void main() {
try {//执行的函数体
copyfile2("c:/test/dest.txt", "c:/test/src.txt");
}
catch (int error) {//接收的结果
printf("出现异常啦!%d\n", error);
}
catch (string * error) {
printf("捕捉到字符串异常:%s\n", error->c_str());
delete error;
}
system("pause");
}
/*
_ooSoo_
愿 o8888888o
佛 88" . "88
祖 (| -_- |)
保 s\ = /s
佑 ___/'==='\___
.' \\| |// '.
代 / \\||| : |||// \
码 / _||||| -:- |||||_ \
永 | | \\\ - /// | |
无 | \_| ''\---/'' |_/ |
BUG \ .-\__ '-' __/-. /
___'. .' /--.--\ '. .'___
."" '< '.___\_<|>_/___.' >' "".
( | : `- \`.:`\ _ /`:.`/ -` : | )
\ \ `-. \_ __\ /__ _/ .-` / /
=====`-.____`.___ \_____/ ___.`____.-`====
`=---=`
*/