异常处理
抛异常
throw 数据
抛异常对象
抛基本类型
注意:不能抛出局部对象的指针或引用(构造函数和析构函数不能抛出异常)。
注意:如果异常没有被捕获处理,程序就会停止。
捕获异常
try{
可以抛出异常的代码
}
catch(类型 变量名) // 根据数据类型进行捕获
{
处理异常,如果无法处理可以继续抛出异常
}
注意:捕获异常的顺序是自上而下的,而不是最精准的匹配,针对子类异常捕获时要放在父类的前面。
函数的异常声明:
返回值类型 函数名(参数列表)throw(类型1,类型2,...)
注意:如果不写异常声明表示什么类型的异常都可能抛出。
注意:如果写了异常声明表示只抛出某些类型的异常,一旦超出异常声明的范围,程序会直接停止,无法捕获。
注意:throw() 表示什么类型都不会抛出
设计异常类:
class Error
{
int errno;
char errmsg[255];
public:
Error(int errno = -1,const char* msg = "未知错误")
{
this->errno = errno;
strcpy(errmsg,msg);
}
int getError(void)
{
return errno;
}
const char* getErrmsg(void)
{
return errmsg;
}
}
网站声明:如果转载,请联系本站管理员。否则一切后果自行承担。
添加我为好友,拉您入交流群!
请使用微信扫一扫!