C语言异常处理
#include <stdio.h>
#include <setjmp.h>
jmp_buf buf;
double Divide(double a, double b)
{
if (b == 0.0)
{
longjmp(buf, 1);
}
else
return a / b;
}
int main(void)
{
int ret;
ret = setjmp(buf);
if (ret == 0)
{
printf("a/b = %f\n", Divide(5.0, 1.0));
}
else if (ret == 1)
{
printf("divisiong by zero\n");
}
return 0;
}
C++处理异常
#include <iostream>
using namespace std;
double Divide(double a, double b)
{
if (b == 0.0)
{
throw 1;
}
else
return a / b;
}
int main(void)
{
try
{
cout << "division ..." << endl;
cout << Divide(5.0, 0.0) << endl;
}
catch (int)
{
cout << "divisiong by zero\n" << endl;
}
return 0;
}