#include<exception>
#include<iostream>
#include<sstream>
#include<func.h>
using namespace std;
void func(int i)
{
try{
if(i==1)
{
throw std::runtime_error ("1.func-tryCatch test error");
}
}
catch(std::exception & e)
{
std::cerr<<e.what()<<std::endl;
}
}
void func2(const char * filename)
{
try{
int filefd=open("file1",O_RDONLY);
if(filefd==-1)
{
std::ostringstream oss;
oss<<"open"<<" : "<<strerror(errno);
throw std::runtime_error(oss.str());
}
}
catch(std::exception & e)
{
std::cerr<<e.what()<<std::endl;
}
}
int main()
{
printf("try-catch-test-1\n");
func(1);
printf("try-catch-test-2\n");
const char * fname="file1";
func2(fname);
}
#include<exception>
#include<cstdio>
#include<iostream>
using namespace std;
void func(double & a,double & b)
{
try
{
if(b==0)
{
throw b;
}
else
{
a=a/b;
cout<<"ret= "<<a<<endl;
}
}
catch(double ret)
{
cerr<<"error of dividing zero !"<<endl;
}
return;
}
void func2(int a,int b)
{
try
{
if((a+b)<100)
{
printf("a+b = %d\n",a+b);
}
else if((a+b)>=100)
{
throw a+b;
}
}
catch(int ret)
{
cerr<<"error:number is out of count"<<endl;
}
return ;
}
int main()
{
cout<<"test1"<<endl;
double a=4,b=2;
func(a,b);
b=0;
func(a,b);
cout<<"test2"<<endl;
int c=3,d=4;
func2(c,d);
c=51;
d=60;
func2(c,d);
}