__try语句
这个是标准用法还是什么 在哪里有定义 具体是怎么实现的大家帮忙解释一下 谢谢:)
----------------解决方案--------------------------------------------------------
__try是VC++下的一个关键字,是用来捕获程序异常地
----------------解决方案--------------------------------------------------------
给你看个
#include<iostream>
#include <string>
using namespace std;
class Person
{
private:
int age;
string name;
public:
void setAge(int);
void setName(string);
};
class Error
{
public:
virtual void show()=0;
};
class nameError:public Error
{
public:
void show()
{
cout<<"name is error"<<endl;
}
};
class ageError:public Error
{
public:
void show()
{
cout<<"age is error"<<endl;
}
};
void Person::setAge(int a)
{
ageError ag;
if(a<0||a>100)
throw ag;
this->age=a;
}
void Person::setName(string str)
{
nameError ne;
if(str=="exit")
throw ne;
this->name=str;
}
int main(void)
{
Person p;
try
{
p.setAge(0);
p.setName("exit");
}
catch(Error &er)
{
er.show();
}
cout<<"hello world"<<endl;
return 0;
}
#include <string>
using namespace std;
class Person
{
private:
int age;
string name;
public:
void setAge(int);
void setName(string);
};
class Error
{
public:
virtual void show()=0;
};
class nameError:public Error
{
public:
void show()
{
cout<<"name is error"<<endl;
}
};
class ageError:public Error
{
public:
void show()
{
cout<<"age is error"<<endl;
}
};
void Person::setAge(int a)
{
ageError ag;
if(a<0||a>100)
throw ag;
this->age=a;
}
void Person::setName(string str)
{
nameError ne;
if(str=="exit")
throw ne;
this->name=str;
}
int main(void)
{
Person p;
try
{
p.setAge(0);
p.setName("exit");
}
catch(Error &er)
{
er.show();
}
cout<<"hello world"<<endl;
return 0;
}
----------------解决方案--------------------------------------------------------
那么这个异常的捕获是靠什么实现的呢。。
----------------解决方案--------------------------------------------------------