一.基本语法
异常发生第一现场,抛出异常
void function() {
//... ...
throw 表达式;
//... ...
}
在需要关注异常的地方,捕捉异常
try {
//程序
function();
//程序
}
catch (异常类型声明) {
//... 异常处理代码 ...
}
catch (异常类型 形参) {
//... 异常处理代码 ...
}
catch (...) { //其它异常类型
//
}
二.样例展示
#define MAX 200
int CopyNow(const char* dest, const char* src)
{
FILE* fp1 = NULL;
FILE* fp2 = NULL;
fopen_s(&fp1, src, "r");
//异常判断
if (fp1 == NULL)
{
throw - 1;
}
//文件定位,可以开始读写了
int readlen = 0;//读写长度
char Buffer[MAX];
//打开要写的文件
fopen_s(&fp2, dest, "wb");
if (fp2 == NULL)
{
throw - 2;
}
int writelen = 0;//写长度
while ((readlen = fread(Buffer, 1, MAX, fp1)) > 0)
{
writelen = fwrite(Buffer, 1, readlen, fp2);
if (writelen != readlen)
{
throw - 3;
}
}
fclose(fp1);
fclose(fp2);
return 0;
}
int main()
{
int ret = 0;
//异常捕获机制
try
{
ret = CopyNow(dest, src);
}
catch (int error)
{
cout << "出现异常!!!" << endl;
}
catch (...)
{
cout << "运行正常!!!" << endl;
}
return 0;
}